比如Select (FT_ID),sum((numid)) From FT_AZA_POLY ;去除括号变成 比如Select FT_ID,sum(numid) From FT_AZA_POLY ;

解决方案 »

  1.   


    你可以把它看成 c 里的 圆括号sql的的方括号倒有特别的意义,一般不能去除在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符: 
    WHERE ColumnA LIKE '9[-]5'下表显示了括在方括号内的通配符的用法。符号 含义 
    LIKE '5[%]' 5% 
    LIKE '5%' 5 后跟 0 个或更多字符的字符串 
    LIKE '[_]n' _n 
    LIKE '_n' an, in, on (and so on) 
    LIKE '[a-cdf]' a, b, c, d, or f 
    LIKE '[-acdf]' -, a, c, d, or f 
    LIKE '[ [ ]' [ 
    LIKE ']' ] 
      

  2.   

    去掉的原因是我要用lex yacc解析,如果有括号,取得的列名就不正确了。
    比如
    Select TSQL_CALC.Sum((FT_ID)) From FT_AZA_POLY Where FKNCODE='01'
    如果TSQL_CALC.Sum((FT_ID)) 不去掉一层括号,我取得的就是(FT_ID)。
      

  3.   

    那也应该是你的lex 需要重写啊。