为什么我不能在ORDER BY之后放置WHERE子句?
SELECT column1
FROM myTable
ORDER BY column2
WHERE column2 = 5
有标准参考吗?我在哪里可以获得SQL标准草案?
答案 0 :(得分:3)
交换最后两行:
SELECT column1
FROM myTable
WHERE column2 = 5
ORDER BY column2
您的SELECT ... FROM ... WHERE
语句是您提取的数据,ORDER BY
对其进行排序。
但是对该查询进行排序毫无意义,因为您已经知道column2
等于5
。
答案 1 :(得分:1)
WHERE
子句应该在ORDER BY
子句之前。 Here's a good article显示T-SQL中SELECT
语句的格式。
答案 2 :(得分:1)
SELECT语法的详细信息如下:http://msdn.microsoft.com/en-us/library/ms189499.aspx
答案 3 :(得分:1)
那是因为SQL有一个语法顺序,大多数语言中的函数都会发生这种情况,如果切换参数,会发生什么?你不会得到预期的结果......
以下是基本SQL语句和语法顺序的快速指南参考:http://www.1keydata.com/sql/sql-syntax.html
答案 4 :(得分:1)
在本文件末尾http://en.wikipedia.org/wiki/SQL附近讨论了标准,但您可能需要从ISO支付官方标准文件的副本。