一张表里有字段a,第一条数据a的值是“2,32,22”,第二条数据a的值是“32,22”,第三条数据a的值是“2”,第四条数据a为32我现在想写个sql,a字段作为筛选条件,值为2,怎样才能筛选出第一条和第三条数据
你的问题可以分解为先把a字段按照逗号拆分,然后再做判断就好,a字段按照逗号拆分:
ALTER FUNCTION [dbo].[cutStr]
(
@s varchar(8000), --要区分的字段
@pos int, --要获取的数据项的位置
@split varchar(10) --数据分隔符
)RETURNS varchar(1000)
AS
BEGIN
IF @s IS NULL RETURN(NULL)
DECLARE @splitlen int
SELECT @splitlen=LEN(@split+'a')-2
WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0
SELECT @pos=@pos-1,
@s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,' ')
RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),' '))
end