检查几个RDBMS我发现像
这样的东西SELECT COUNT (a), SUM (b)
FROM TABLE
允许(注意聚合函数和括号之间的空格)。
任何人都可以提供指向SQL标准的指针(如果定义了这个)(任何版本都会这样做)?
编辑:
以上工作在postgres中,mysql需要set sql_mode = "IGNORE_SPACE";
定义为here(有关受此服务器模式影响的完整功能列表,请参阅this ref)。
据报道MS SQL接受上述内容。
此外,似乎答案最有可能出现在standard中。关于常规符号和术语,我可以遵循BNF,但是当我在select的那一部分中定义空格和分隔符时,我会迷失方向。
答案 0 :(得分:1)
是;令牌之间的空白基本上被忽略了。唯一的例外是正式的,相邻的字符串文字串联 - 但标准比任何实现都要怪。
答案 1 :(得分:0)
这适用于SQL Server 2005:
SELECT COUNT (*)
FROM TABLE
...当MySQL上COUNT
和(*)
之间的一个空格导致MySQL 1064错误(语法错误)时。我没有Oracle或Postgres方便测试。
无论标准是什么,它都取决于您使用的供应商和版本中的实现。
答案 2 :(得分:-1)
我无法提供指针,但我相信这样的空格会被忽略。
我知道它在T-SQL中,并且大约80%确定MySQL的实现。