select  Goodscode ,  Goodsname ,  Max (Case  rq  when  '2005-1-17' THEN  number    Else NULL END ) as  '2005-1-17' into ls_tab4   from  ls_tab3  group by goodscode,goodsname这个语句择行过后,'2005-1-17' 在表ls_tab4中的表设计器中看到的字段名称怎是[ 2005-1-17 ],为什么加[]这个啊,那位大侠怎告诉我啊

解决方案 »

  1.   

    select  Goodscode ,  Goodsname ,  Max (Case  rq  when  '2005-1-17' THEN  number    Else NULL END ) as  2005-1-17 into ls_tab4   from  ls_tab3  group by goodscode,goodsname
    或者
    select  Goodscode ,  Goodsname ,  Max (Case  rq  when  '2005-1-17' THEN  number    Else NULL END ) as  [2005-1-17] into ls_tab4   from  ls_tab3  group by goodscode,goodsname基本能达你的要求
      

  2.   

    标识符的种类
    标识符有两类:常规标识符符合标识符的格式规则。在 Transact-SQL 语句中使用常规标识符时不用将其分隔。SELECT *
    FROM TableX
    WHERE KeyCol = 124分隔标识符包含在双引号 (") 或者方括号 ([ ]) 内。符合标识符格式规则的标识符可以分隔,也可以不分隔。 SELECT *
    FROM [TableX]         --Delimiter is optional.
    WHERE [KeyCol] = 124  --Delimiter is optional.在 Transact-SQL 语句中,对不符合所有标识符规则的标识符必须进行分隔。SELECT *
    FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
    WHERE [order] = 10   --Identifier is a reserved keyword.
      

  3.   

    常规标识符规则
    常规标识符的格式规则取决于数据库的兼容级别,兼容级别可以用 sp_dbcmptlevel 来设置。有关更多信息,请参见 sp_dbcmptlevel。当兼容级别为 80 时,规则是: 第一个字符必须是下列字符之一: 
    Unicode 标准 2.0 所定义的字母。Unicode 中定义的字母包括拉丁字母 a-z 和 A-Z,以及来自其它语言的字母字符。
    下划线 (_)、at 符号 (@) 或者数字符号 (#)。 
    在 SQL Server 中,某些处于标识符开始位置的符号具有特殊意义。以 at 符号开始的标识符表示局部变量或参数。以一个数字符号开始的标识符表示临时表或过程。以双数字符号 (##) 开始的标识符表示全局临时对象。 某些 Transact-SQL 函数的名称以双 at 符号 (@@) 开始。为避免混淆这些函数,建议不要使用以 @@ 开始的名称。后续字符可以是: 
    Unicode 标准 2.0 所定义的字母。
    来自基本拉丁字母或其它国家/地区脚本的十进制数字。
    at 符号、美元符号 ($)、数字符号或下划线。 
    标识符不能是 Transact-SQL 的保留字。SQL Server 保留其保留字的大写和小写形式。
    不允许嵌入空格或其它特殊字符。 
    当标识符用于 Transact-SQL 语句时,必须用双引号或括号分隔不符合规则的标识符。