我有这张桌子。 TABLE1
ID NAME QTA
102 Name 1 100
105 Name 2 0
107 Name 3 10
109 Name 4 0
110 Name 5 7
我想以这种方式订购。 (按ID ID,其中QTA> 0然后BY ID WHERE QTA = 0)
ID NAME QTA
102 Name 1 100
107 Name 3 10
110 Name 5 7
105 Name 2 0
109 Name 4 0
我尝试这个查询
SELECT ID, NAME, QTA
FROM TABLE1
WHERE QTA > 0
ORDER BY ID
UNION
SELECT ID, NAME, QTA
FROM TABLE1
where QTA = 0
ORDER BY ID
问题在于subquerys中不允许使用ORDER BY。
我该怎么做?
答案 0 :(得分:1)
您可以在ORDER BY
中执行该订单,只需添加CASE
:
SELECT ID, NAME, QTA
FROM TABLE1
WHERE QTA >= 0
ORDER BY CASE WHEN QTA > 0 THEN 1 ELSE 2 END, ID
答案 1 :(得分:0)
在联合之前删除订单。