如果运行的是sql server 2016或更高版本,则有一个选项使用 string_split() :
select
field1,
field2
case
when field1 is null or field2 is null
then 'Unknown'
when exists (select 1 from string_split(field1, '|') where field2 like '%' + value + '%' )
then 'True'
else 'False'
end as result
from mytable
select t.*,
(case when names_in_common > 0 then 'true'
when field1 is null or field2 is null then 'unknown'
else 'false'
end) as flag
from t outer apply
(select count(*) as names_in_common
from string_split(field1, '|') s1 join
string_split(field2, '|') s2
on s1.value = s2.value
) n
2条答案
按热度按时间gzszwxb41#
如果运行的是sql server 2016或更高版本,则有一个选项使用
string_split()
:也就是说,您的第一项工作应该是修复数据模型。在表列中存储带分隔符的列表基本上不符合关系数据库的目的,因此应始终避免。每个值应显示在单独的行中。
amrnrhlw2#
使用
split()
功能,我推荐apply
: