2014-09-25 76 views
-1

有人能告诉什么是错的查询不正确的语法

SET @TUYEN_ID = (SELECT TOP 1 
        TUYEN_ID 
       FROM 
        (SELECT TOP (@i) 
         TUYEN_ID 
        FROM 
         @TUYENS 
        ORDER BY 
         TUYEN_ID ASC) 
       ORDER BY 
        TUYEN_ID DESC) 

回答

0

尝试在查询中使用别名:

SET @TUYEN_ID = (SELECT TOP 1 M.TUYEN_ID 
       FROM (SELECT TOP (@i) T.TUYEN_ID 
         FROM @TUYENS T 
         ORDER BY T.TUYEN_ID ASC) M 
       ORDER BY M.TUYEN_ID DESC) 

FROM语句没有子查询结果的别名,可能会导致第二个ORDER BY子句出现问题。

希望这将有助于

+0

它的工作,谢谢了很多 – 2014-09-25 05:40:24

+0

@VõVănMinh很高兴听到这个消息!我建议你总是使用别名以避免此类问题/冲突。它还增加了复杂查询的可读性 – 2014-09-25 05:42:09