请教一个问题,希望得到大家帮助.
表结构: ID (主键) 日期 班次 人员
其中人员为用","分隔的字符串,字符串中数据项的位置和数量不确定.如何在SQL中自定义一个函数,参数为:日期/班次/待查找的字符串.用游标或其他方法对sql检索出来的指定日期,班次的一组字符串进行匹配查找,如果有匹配的记录则返回ID,否则返回0.
表结构: ID (主键) 日期 班次 人员
其中人员为用","分隔的字符串,字符串中数据项的位置和数量不确定.如何在SQL中自定义一个函数,参数为:日期/班次/待查找的字符串.用游标或其他方法对sql检索出来的指定日期,班次的一组字符串进行匹配查找,如果有匹配的记录则返回ID,否则返回0.
return int
asdeclare @id int
set @findstr = ','+@findstr+','select @id = id
from tablename
where 日期 = @dt and 班次 = @classnum and charindex(@findstr,','+人员+',')>0if @id > 0
return @id
else
return 0
数据库中检索出来的字符串可能是这样的
01-2006-12-1-8-'a200501,a200501,a200503'
02-2006-12-1-8-'a200501,a200501,a200503,a200504'
03-2006-12-1-8-'a200501,a200501,a200503,a200506'
04-2006-12-1-8-'a200501,a200501,a200503,a200506,a200576'我要的结果是 1这条记录匹配,返回的结果'01',否则返回'0'.
待查找的字符串是这样的'a200502,a200501,a200503'
数据库中检索出来的字符串可能是这样的
01-2006-12-1-8-'a200501,a200501,a200503'
02-2006-12-1-8-'a200501,a200501,a200503,a200504'
03-2006-12-1-8-'a200501,a200501,a200503,a200506'
04-2006-12-1-8-'a200501,a200501,a200503,a200506,a200576'
我要的结果是 1这条记录匹配,返回的结果'01',否则返回'0'.
待查找的字符串是这样的'a200502,a200501,a200503'
数据库中检索出来的字符串可能是这样的
01-2006-12-1-8-'a200501,a200502,a200503'
02-2006-12-1-8-'a200501,a200501,a200503,a200504'
03-2006-12-1-8-'a200501,a200501,a200503,a200506'
04-2006-12-1-8-'a200501,a200501,a200503,a200506,a200576'
我要的结果是 1这条记录匹配,返回的结果'01',否则返回'0'.