如何識別此示例中的行,其中只有一列是“未知”?
- 如果兩列相同,但不是未知的,那就太好了 - 使用任何一個
- 如果一個未知而另一列不是,那也很好 - 使用另一個。
- 如果他們都是未知的,這是一個很容易解決的問題
放置一堆嵌套的 if then 型別子句聽起來不是最聰明的方法。
使用 SQL Server 11x
CASE
WHEN [Test1] = 'Unknown' AND [Test2] <> 'Unknown' THEN [Test2]
WHEN [Test1] <> 'Unknown' AND [Test2] = 'Unknown' THEN [Test1]
WHEN [Test1] <> 'Unknown' AND [Test2] <> 'Unknown' AND [Test1] <> [Test2] THEN 'Issue'
ELSE 'xxxx'
END AS test
| 排 | ID | 姓名 | 測驗1 | 測驗2 |
|---|---|---|---|---|
| 1 | ABC123 | afgs | 4_物業 | 2_調查 |
| 2 | ABC193 | sdshshsh | 3_設計 | 未知 |
| 3 | ABC171 | srjyjtyjtjt | 3_設計 | 未知 |
| 4 | ABC147 | jtjrjrukr | 4_物業 | 未知 |
| 5 | ABC100 | 葉玉秋林 | 3_設計 | 2_調查 |
| 6 | ABC194 | 魯努克蒂克 | 3_設計 | 2_調查 |
| 7 | ABC140 | 關注 | 未知 | 3_設計 |
| 8 | ABC153 | 秋肯廷克 | 2_調查 | 4_物業 |
| 9 | ABC113 | kntyit | 3_設計 | 3_設計 |
| 10 | ABC169 | ntykntyiniil | 3_設計 | 3_設計 |
uj5u.com熱心網友回復:
你可以使用:
SELECT ROW, ID, Name,
CASE WHEN Test1 = 'Unknown' THEN Test2 ELSE Test1 END AS Test
FROM yourTable;
如果不是未知,這將報告Test的值,否則報告 的值。在兩者都是未知的情況下,它將報告未知。Test1Test2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441804.html
上一篇:如何分別按單個類別計算列的總和?
