急:问高手一个SQL语句,在线等候,解决后即结贴

wjhcjg 2003-11-13 12:34:02
我用例子来说明:
表名(简化)及字段结构如右:rw_tasks(int id,nvarchar users,nvarchar state)
字段users的存储格式如右:gkm,wqz,wsx,wf,
字段state的存储格式如右:0,1,2,0,

说明:users存的是人员帐号,用“,”隔开;而字段state存的是和users字段中存贮的各帐号对应的一种状态,也用","隔开。如上例gkm对应0;wqz对应1;wsx对应2;wf对应0

问题:请问能不能写一条SQL查询语句查出满足下面条件的所有记录?(条件如下)
查询条件:(用举例说明条件)查出所有users字段含有"wqz"的,且字段state中和其对应的状态为"0"的记录.谢谢!
...全文
63 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
njjianguogu 2003-11-13
  • 打赏
  • 举报
回复
create #temp ( id int,users nvarchar(100) , state nvarchar(100))
declare @s varchar(100),@h varchar(100),@r varchar(100)
declare @p int,@m int
set @m = 0


SELECT @@CURSOR_ROWS
DECLARE authors_cursor CURSOR FOR
SELECT users,state FROM rw_tasks
OPEN authors_cursor
FETCH authors_cursor INTO @s,@h
WHILE @@CURSOR_ROWS = 0
begin
IF charindex(@s,'wqz') > 0
set @p = pos(@s,'wqz')
set @r = left(@s,@p - 1)
WHILE charindex(@r,',') > 0
begin
@m = @m + 1
end
@r = substring(@h,@m + @m,1)
insert #temp values(select * from rw_tasks where state = @r)
end
end
CLOSE authors_cursor
DEALLOCATE authors_cursor
select * from #temp
gmlxf 2003-11-13
  • 打赏
  • 举报
回复
select * from rw_tasks
where charindex(',wqz,',','+users)>0 and state='0'
gmlxf 2003-11-13
  • 打赏
  • 举报
回复
select * from rw_tasks
where charindex(',wqz,',','+users)>0 and state=0
wjhcjg 2003-11-13
  • 打赏
  • 举报
回复
客户的表,没办法帮其改,我们只是要做一个接口的,那有没有办法写呢?
愉快的登山者 2003-11-13
  • 打赏
  • 举报
回复
你的表建立不何规范,建议先规范表,然后再完成查询.
如:将你的这一条记录,分成四个记录.查询起来会很方便的.

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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