我正在處理排名危機。想象一些這樣的資料:
| 資料 | 秩 |
|---|---|
| 愛麗絲 | 10 |
| 鮑勃 | 25 |
| 克萊爾 | 33 |
| 戴爾 | 42 |
| 烏木 | 56 |
| 美聯儲 | 68 |
假設我有一組值:13、35 和 49。我想遍歷我的一組等級,并在每次超過該集合中的一個值時為每個等級添加一個。這意味著我的最終輸出將被計算為:
| 資料 | 秩 |
|---|---|
| 愛麗絲 | 10 0 = 10 |
| 鮑勃 | 25 1 = 26 |
| 克萊爾 | 33 1 = 34 |
| 戴爾 | 42 2 = 44 |
| 烏木 | 56 3 = 59 |
| 美聯儲 | 68 3 = 71 |
如何做到這一點?除非真的必須,否則我不想寫游標。我懷疑加入可以以某種方式解決這個問題。
uj5u.com熱心網友回復:
稍微填空,但我認為您可能只使用 a LEFT JOINand COUNT:
SELECT YT.Data,
YT.Rank COUNT(OT.OtherValue) AS Rank
FROM dbo.YourTable YT
LEFT JOIN dbo.OtherTable OT ON YT.Rank > OT.Othervalue
GROUP BY YT.Data,
YT.Rank;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/425867.html
上一篇:動態SQL-在SETSQL字串中使用宣告的VARCHAR
下一篇:將多個視圖合并為一個的SQL查詢
