在Sybase SQL中的子查询中排序

时间:2012-06-18 20:38:45

标签: sybase

我有这张桌子。 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。

我该怎么做?

2 个答案:

答案 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)

在联合之前删除订单。