获取字段中包含某个字符的记录

btlyeo 2008-05-20 11:21:45
---------------------------------------------------------
declare @tab table (id int IDENTITY (1, 1) NOT NULL ,char1 nvarchar(100))
insert into @tab
select '1035,1036'
union all
select '1035,1,2'
select * from @tab
------------------------------------------------------------------
我想获取@tab表中,包含'1'的数据,是完全匹配的,逗号中间隔的那个数据(意思是只能过滤到第2条记录)

想了半天也没有号办法,用游标的话会很难受,因为数据库里记录太多!

帮忙
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
btlyeo 2008-05-20
  • 打赏
  • 举报
回复
谢谢#23
wgzaaa 2008-05-20
  • 打赏
  • 举报
回复
select * from @tab WHERE CHARINDEX(',1,',','+CHAR1+',')>0
pt1314917 2008-05-20
  • 打赏
  • 举报
回复

--这样?
declare @tab table (id int IDENTITY (1, 1) NOT NULL ,char1 nvarchar(100))
insert into @tab select '1035,1036'
union all select '1035,1,2'


declare @char1 varchar(10)
set @char1='1'
select * from @tab where charindex(','+@char1+',',','+char1+',')>0
dawugui 2008-05-20
  • 打赏
  • 举报
回复
declare @tab table (id int IDENTITY (1, 1) NOT NULL ,char1 nvarchar(100)) 
insert into @tab
select '1035,1036'
union all
select '1035,1,2'
select * from @tab where charindex(',1,' , ','+char1 + ',')>0
select * from @tab where ','+char1 + ',' like '%,1,%'

/*
id char1
----------- ----------
2 1035,1,2

(所影响的行数为 1 行)

id char1
----------- ----------
2 1035,1,2

(所影响的行数为 1 行)
*/
wzy_love_sly 2008-05-20
  • 打赏
  • 举报
回复
declare @tab table (id int IDENTITY (1, 1) NOT NULL ,char1 nvarchar(100))
insert into @tab
select '1035,1036'
union all
select '1035,1,2'
select * from @tab
where charindex(',1,',','+char1+',')>0
srgcc 2008-05-20
  • 打赏
  • 举报
回复
select * from @tab where char1 ='1' or char1 like '%1,%' or char1 like '%,1,%' or char1 like '%,1'
skyzcl 2008-05-20
  • 打赏
  • 举报
回复
用函数效率会不会高点

34,590

社区成员

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

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