当前位置: 代码迷 >> Sql Server >> 查询字符中是不是包含字符串中的某值 ,号分隔
  详细解决方案

查询字符中是不是包含字符串中的某值 ,号分隔

热度:56   发布时间:2016-04-27 11:59:53.0
查询字符中是否包含字符串中的某值 ,号分隔
查询表tableA 中的info字段,是否包含了 如"1,3,5"中的其中一个数值

info字段的内容也是 1,2,3这种数字加,的结构

注意:sql语句中,不可手工折解1,3,5字符

------解决方案--------------------
SQL code
--> 测试数据:[test]if object_id('[test]') is not null drop table [test]create table [test]([id] int,[info] varchar(6))goinsert [test]select 1,'1,2,3' union allselect 2,'1,3' union allselect 3,'4,5,6' union allselect 4,'2,4,16'goif OBJECT_ID('pro_test')is not nulldrop proc pro_testgocreate proc pro_test(@str varchar(20))ascreate table #test(id int identity,value int)--declare @str varchar(1000)--set @str='1,2,3'declare @sql varchar(1000)set @sql='insert #test(value)           select '+REPLACE(@str,',',' union all select ')print @sqlexec(@sql)select     distinct a.*from     test ainner join     #test bon    CHARINDEX(','+LTRIM(b.value)+',',''+a.[info]+',')>0go--主意,我理解的你的包含是指info字段同时包含所给字符串中的没一个数字exec pro_test '1,3,4'/*id    info1    1,2,32    1,34    2,4,16*/--再不是这样就只有帮顶帖子了
  相关解决方案