是否有更简单的方法在 select 中编写 case 语句,或者这是唯一的方法? 基本上如果 COL B 和 COL C 不为 NULL,则 col b - col c,如果其中一个为 null,则选择另一个。
SELECT
COL_A AS [A],
CASE WHEN NULLIF(COL_B, '') IS NOT NULL AND NULLIF(COL_C, '') IS NOT NULL
THEN CONCAT(COL_B, ' - ', COL_C)
WHEN NULLIF(COL_B, '') IS NULL AND NULLIF(COL_C, '') IS NOT NULL
THEN COL_C
WHEN NULLIF(COL_B, '') IS NOT NULL AND NULLIF(COL_C, '') IS NULL
THEN COL_B
END AS [B]
最佳答案
Basically if COL B AND COL C are not NULL, THEN col b - col c, if one is null, select the other.
使用CONCAT_WS :
SELECT CONCAT_WS(' - ', COL_B, COL_C) AS [B]
<强> db<>fiddle demo
关于sql - 有没有办法简化这个 TSQL Case 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72663011/