我有一個以這種方式構建的 SQL 2017 資料表:
| 一種 | 1 | 2 | 3 |
|---|---|---|---|
| 5 | 10 | 0 | 0 |
| 2 | 0 | 1 | 0 |
出于報告目的,我需要一個 TSQL 查詢來遍歷每一行,從 A 列中獲取值,并將其與第 1-3 列中的每個值進行比較。如果 col A 的值大于 col [x] 的值,則應迭代計數器。當該行的所有比較完成后,我記錄計數器的最終值,然后沖洗并重復下一行。
以 RBAR 和逐個單元的方式執行此程序是行不通的。我的實際表有 300 多行和 15 列,應與初始值進行比較。誰能建議一個更好的方法來做到這一點?
uj5u.com熱心網友回復:
我們可以CASE在這里使用運算式:
SELECT *, CASE WHEN A > [1] THEN 1 ELSE 0 END
CASE WHEN A > [2] THEN 1 ELSE 0 END
CASE WHEN A > [3] THEN 1 ELSE 0 END AS counter
FROM yourTable;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338965.html
標籤:sql 查询语句 短信 sql-server-2017
