Q. table A に table B, table C を結合したとき,
table B.price と table C.price の複数カラムでソートしたい.
(SQL Server の場合)
table A
ID type
—————
1 b
2 b
3 c
4 c
5 b
table B
—————
ID price
1 100
2 110
5 150
table C
—————
ID price special
3 120 11
4 130 15
A. OUTERT JOIN で結合し,ORDER BY で複数の検索カラムを指定する.
SELECT table A.ID, table A.type,
table B.price,
table C.price, table C.special
FROM table A
OUTER JOIN table B ON table A.ID = table B.ID
OUTER JOIN table C ON table A.ID = table C.ID
WHERE table A.ID = table B.ID OR
table A.ID = table C.ID
ID typ prc prc spcl
1 b 100 NUL NUL
2 b 110 NUL NUL
3 c NUL 120 11
4 c NUL 130 15
5 b 150 NUL NUL
上記のように結合し,次のようにソートする.
ORDER BY ISNULL( table B.price, table C.price )
排他なので,table B.price, table C.price のうちNULLでないものを取ればよい.
項目が3つ以上の場合も同様.
参考 http://oshiete1.goo.ne.jp/qa3257629.html