2012-06-18 29 views
2

我有這張表。 TABLE1在Sybase SQL中的subquerys中排序

ID  NAME  QTA 

102 Name 1  100 

105 Name 2  0 

107 Name 3  10 

109 Name 4  0 

110 Name 5  7 

我想以這種方式訂購。 (BY ID WHERE 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 

的問題是,ORDER BY不subquerys不允許的。

我該怎麼做?

回答

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 
0

就工會之前刪除訂單。