トップ回答者
UNION ALLの前にORDER BYで並び替えるには

質問
-
質問させていただきます。
SQL文でUNION ALLで2つSELECT文を結合するのですが、次のように1つのSELECT文にTOP句があるため、SELECT文結合前にBBBで並び替えをしたあとに結合したいのです。
SELECT TOP 3 AAA, BBB FROM Tbl_A WHERE ID = 1
(ORDER BY BBB DESC)←これを指定したい!!
UNION ALL
SELECT AAA, BBB FROM Tbl_A WHERE ID = 2
ORDER BY AAA DESCしかしなから、個々のSELECT文にORDER BY 句をつけることはできません。
所詮、このようなSQL文は不可能なのでしょうか?ご教授よろしくお願いいたします。
回答
-
自己レスです。
出来ました。下記のとおりです。
SELECT TOP 3 AAA, BBB FROM
(SELECT TOP 10 AAA,BBBB FROM Tbl_A WHERE ID = 1
ORDER BY BBB DESC) AS Tbl_AA
UNION ALL
SELECT AAA, BBB FROM Tbl_A WHERE ID = 2
ORDER BY AAA DESCFROM句をORDER BYを含めたSELECT文をカッコで囲み、これにエイリアス指定することで最初のSELECT文が有効になりました。
お騒がせしました。
また、T-Yokooさん、ご協力ありがとうございました。- 回答としてマーク Zigen 2010年11月22日 14:57
すべての返信
-
自己レスです。
出来ました。下記のとおりです。
SELECT TOP 3 AAA, BBB FROM
(SELECT TOP 10 AAA,BBBB FROM Tbl_A WHERE ID = 1
ORDER BY BBB DESC) AS Tbl_AA
UNION ALL
SELECT AAA, BBB FROM Tbl_A WHERE ID = 2
ORDER BY AAA DESCFROM句をORDER BYを含めたSELECT文をカッコで囲み、これにエイリアス指定することで最初のSELECT文が有効になりました。
お騒がせしました。
また、T-Yokooさん、ご協力ありがとうございました。- 回答としてマーク Zigen 2010年11月22日 14:57