大于 0 时连接值
Concatenate values when greater than 0
如果值大于 0,我需要连接来自多个列的值。
示例:
Video 1
Internet 0
Phone 3
Security 0
Basic 1
所以最终值为 1 Video|3 Phone|1 Basic|
有没有比编写如下代码更好的方法:
Case When Video > 0 and Internet+Phone+Security+Basic < 0 Then Video + ' Video|'
When Video > 0 and Internet > 0 and Phone+Security+Basic < 0 Then Video + ' Video|' + Internet + ' Internet|'
When Video > 0 and Phone > 0 and Internet+Security+Basic < 0 Then Video + ' Video|' + Phone + ' Phone|'
依此类推,直到计算出每个组合。
select
Case When Video > 0 Then Video + ' Video|' else '' end +
Case When Internet > 0 Then Internet + ' Internet|' else '' end +
Case When Phone > 0 Then Phone + ' Phone|' else '' end +
Case When Security > 0 Then Security + ' Security|' else '' end +
Case When Basic > 0 Then Basic + ' Basic|' else '' end +
from source
如果值大于 0,我需要连接来自多个列的值。
示例:
Video 1
Internet 0
Phone 3
Security 0
Basic 1
所以最终值为 1 Video|3 Phone|1 Basic|
有没有比编写如下代码更好的方法:
Case When Video > 0 and Internet+Phone+Security+Basic < 0 Then Video + ' Video|'
When Video > 0 and Internet > 0 and Phone+Security+Basic < 0 Then Video + ' Video|' + Internet + ' Internet|'
When Video > 0 and Phone > 0 and Internet+Security+Basic < 0 Then Video + ' Video|' + Phone + ' Phone|'
依此类推,直到计算出每个组合。
select
Case When Video > 0 Then Video + ' Video|' else '' end +
Case When Internet > 0 Then Internet + ' Internet|' else '' end +
Case When Phone > 0 Then Phone + ' Phone|' else '' end +
Case When Security > 0 Then Security + ' Security|' else '' end +
Case When Basic > 0 Then Basic + ' Basic|' else '' end +
from source