使用SQLDBX的“ SELECT TOP 10”

时间:2018-09-10 16:43:55

标签: sql db2

我尝试在SQLDBX中运行以下命令:

SELECT TOP 10 * FROM TABLE

但是出现以下错误:

  

Sql014N在“ SELECT TOP”之后找到了意外的标记“ 10”。镜像令牌可以包括:“。” SQLSTATE = 42601

2 个答案:

答案 0 :(得分:2)

您的错误消息看起来可能来自DB2,因此我将尝试以下操作:

SELECT * FROM TABLE FETCH FIRST 10 ROWS ONLY

更新:正如Ranadip Dutta在评论中正确提到的那样,除非与确定性FETCH FIRST n ROWS ONLY结合使用,否则DB2 ORDER BY是不确定的。这也是许多其他DBMS所期望的(例如MS SQL Server,MySQL)

答案 1 :(得分:0)

对VHU的回答不是更好,但是如果您想通过在表中写入等级(确定性方法)来获得前10行的顺序,则可以这样做:

SELECT * FROM YOURTABLE F1
ORDER BY RRN(f1)
FETCH FIRST 10 ROWS ONLY