我在这里有一些非常基本的SQL:
SELECT TOP 1 *
FROM (SELECT TOP 8 *
FROM [BP_BasicPolicy ]
)
由于某种原因,它无法编译,并且出现错误:
消息102,级别15,状态1,第4行
')'附近的语法不正确。
正确的语法是什么?我不明白为什么会收到此错误,因为我认为这是完全合法的SQL Server语法
您需要为子查询添加别名:
SELECT TOP 1 t.*
FROM (SELECT TOP 8 *
FROM [BP_BasicPolicy ]
) t
编辑:
我犹豫要补充,使用top
不使用order by
是没有道理的。您需要订购。因此,您可以执行以下操作:
SELECT TOP 1 t.*
FROM (SELECT TOP 8 *
FROM [BP_BasicPolicy ]
ORDER BY col1 ASC
) t
ORDER BY col2 DESC;
实际上,您不需要order by
最外层的,但这仍然是一个好主意。
没有order by
,您也可以这样做:
SELECT TOP 1 t.*
FROM [BP_BasicPolicy ] ;
这将选择任意行。对于特定的,请使用order by
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句