我尝试在SQLDBX中运行以下命令:
SELECT TOP 10 * FROM TABLE
但是出现以下错误:
Sql014N在“ SELECT TOP”之后找到了意外的标记“ 10”。镜像令牌可以包括:“。” SQLSTATE = 42601
答案 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