如何用游标查找匹配的字符串?

tsscgww 2007-01-16 11:27:26
请教一个问题,希望得到大家帮助.
表结构: ID (主键) 日期 班次 人员
其中人员为用","分隔的字符串,字符串中数据项的位置和数量不确定.如何在SQL中自定义一个函数,参数为:日期/班次/待查找的字符串.用游标或其他方法对sql检索出来的指定日期,班次的一组字符串进行匹配查找,如果有匹配的记录则返回ID,否则返回0.
...全文
213 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsscgww 2007-01-16
  • 打赏
  • 举报
回复
不好意思上面的回复有点问题,这个正确
待查找的字符串是这样的'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'.
tsscgww 2007-01-16
  • 打赏
  • 举报
回复
不好意思上面的回复有点问题,这个正确
待查找的字符串是这样的'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'.
tsscgww 2007-01-16
  • 打赏
  • 举报
回复
待查找的字符串是这样的'a200501,a200502,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'.
leo_lesley 2007-01-16
  • 打赏
  • 举报
回复
--待查找的字符串 是什么样的啊!

create function StrFind(@dt datetime,@classnum varchar(1000),@findstr varchar(1000))
return int
as

declare @id int
set @findstr = ','+@findstr+','

select @id = id
from tablename
where 日期 = @dt and 班次 = @classnum and charindex(@findstr,','+人员+',')>0

if @id > 0
return @id
else
return 0

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧