gpt4 book ai didi

sql - SQL Server 中带有 IF 条件的 CONCAT

转载 作者:行者123 更新时间:2023-12-03 23:38:08 26 4
gpt4 key购买 nike

我有一个四列的表格,显示 {YES, NO, N/A} 值。我想获得的是一个列,其中包含这些列的串联名称,这些列呈现一个由双下划线分隔的“YES”值。

\, A, B, C, D
1, YES, NO, YES, N/A
2, NO, YES, N/A, N/A
3, YES, NO, NO, YES

预期结果:
A__C
B
A__D

就像是:
select CONCAT(
IF(A = 'YES', 'A'),
IF(B = 'YES', 'B'),
IF(C = 'YES', 'C'),
IF(D = 'YES', 'D'))
from my_table

最佳答案

希望我理解你的意思,你想要一个双下划线分隔符。
此解决方案无需任何子查询或 cte 处理即可工作。

select substring(
iif(a='YES','__A','') + iif(b='YES','__B','') +
iif(c='YES','__C','') + iif(d='YES','__D','')
,3,100)
from table1

应该知道这个: substring('', 3, 100)将使用 SqlServer 工作。

关于sql - SQL Server 中带有 IF 条件的 CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com