我在数据库中有一列具有以下值:
1##,##7##,
1##,##3##,##5##,
我需要检查##3###,是否存在。
我试着用like从句
declare @MyCSharpParameter
set @MyCSharpParameter = '##3##,##4##'
select * from myTable where col like '%@MyCSharpParameter%'
但是,它不能正常工作,因为mytable没有“##3###,###4###”,它有##3###,##5##,
任何帮助请检查它作为单独的数字,并找到3。
2条答案
按热度按时间8oomwypt1#
如果您使用的是sql server 2016或更高版本,这里有一种方法
string_split
```declare @MyCSharpParameter nvarchar(50);
set @MyCSharpParameter = '##3##,##4##';
create table t (col varchar(100));
insert into t
values('##1##,##7##'),('##1##,##3##,##5##');
select *, case when b.value is not null then 'yes' else 'no' end as found
from t a
left join string_split(@MyCSharpParameter, ',') as b on a.col like '%'+b.value+'%';
slhcrj9b2#
你可以使用
exists
子查询:如果存在多个匹配项,则不会返回重复的行。