[英]MS SQL specific ordering
我的英語不會幫助解釋我的問題,但我會嘗試。
假設我們有一個帶有(photoId,_bandId,desc)的表
現在我們有一組記錄
1, 1000, TestDesc1
2, 1000, TestDesc2
3, 1010, TestDesc3
4, 1900, TestDesc4
5, 1000, TestDesc5
我試圖找到一個選擇命令,在其中獲取特定[_bandId]的所有[desc]但首先要得到一個特定的photoId
我用的是
SELECT * FROM [myTable]
WHERE _bandId = (SELECT _bandId from [myTable] where photoId=2)
這當然給了我輸出:
TestDesc1
TestDesc2
TestDesc5
但是我真正需要的是這個
TestDesc2
TestDesc1
TestDesc5
親切的問候康斯坦丁諾斯
添加一個order by
case
為第一個參數的order by
,在其中您要創建的值首先是您想要的記錄的0,其他記錄的值是1。 之后,您可以添加更多參數以用於如何對剩余記錄進行排序,例如在description上:
SELECT
*
FROM
[myTable]
WHERE
_bandId = (SELECT _bandId from [myTable] where photoId=2)
ORDER BY
CASE PhotoId WHEN 2 THEN 0 ELSE 1 END,
[desc]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.