2016-09-13 57 views
0

我有以下(編輯)select,使用view,爲ORDER BY caluse一個caseSQL服務器爲了

SELECT * 
FROM VW_View 
ORDER BY CASE 
WHEN Initials = 'New' 
    THEN '1' 
    ELSE TeamID 
END 
ASC 

能正常工作在我的本地數據庫,並返回此:

enter image description here

正如預期的那樣

然而,在測試數據庫上,它返回:

enter image description here

未如預期,如order by子句不工作。

意見是完全一樣的,那麼爲什麼該條款不一致?

+0

'TeamID' Pending'?你爲什麼期望呢? –

+1

顯示「TeamID」中的值 –

+0

增加的值 - 它們全都爲1,對於兩個數據庫都是相同的 – Alex

回答

3

由於您未定義次級排序,因此當TeamId = 1時,訂單未定義。添加第二個排序條件或更改類似...

SELECT * 
FROM VW_View 
ORDER BY CASE 
WHEN Initials = 'New' 
    THEN '0' 
    ELSE TeamID 
END 
ASC 
+0

我簡直就是這麼幹的! – Alex