SQL Server语法问题

Ben

我在这里有一些非常基本的SQL:

SELECT TOP 1 *
  FROM  (SELECT TOP 8 *
        FROM [BP_BasicPolicy ] 
        )

由于某种原因,它无法编译,并且出现错误:

消息102,级别15,状态1,第4行
')'附近的语法不正确。

正确的语法是什么?我不明白为什么会收到此错误,因为我认为这是完全合法的SQL Server语法

戈登·利诺夫(Gordon Linoff)

您需要为子查询添加别名:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章