求一个sql语句,查出字段中包含某一个值的记录

kdg2000 2012-08-17 03:36:23

T1
Id Name
1 1,2,3
2 4,5,6
3 7,8,9,10,11

--用一条sql语句找出name字段包含5的记录,有点难度吧

Id Name
2 4,5,6


...全文
10033 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ORAClE SE 2012-08-17
  • 打赏
  • 举报
回复
这也叫难度。。。我。。。
kdg2000 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

SQL code

DECLARE @T1 TABLE([ID] INT,[NAME] VARCHAR(11))
INSERT @T1
SELECT 1,'1,2,3' UNION ALL
SELECT 2,'4,5,6' UNION ALL
SELECT 3,'7,8,9,10,11'

DECLARE @ID INT SET @ID=5
SELECT * FROM @T1 WHERE CH……
[/Quote]

用这个可以满足上面的要求,谢了,
kdg2000 2012-08-17
  • 打赏
  • 举报
回复
这个5要是另外关联的一个表T2的字段呢,假如是

T2
Id text
1 a
2 b
3 c
4 d
5 e

我想让T1表的name字段like T2.Id 怎么写?like '%,T2.Id,%' ?
以学习为目的 2012-08-17
  • 打赏
  • 举报
回复

select * From tab where ','+name+',' like '%,5,%'
叶子 2012-08-17
  • 打赏
  • 举报
回复

DECLARE @T1 TABLE([ID] INT,[NAME] VARCHAR(11))
INSERT @T1
SELECT 1,'1,2,3' UNION ALL
SELECT 2,'4,5,6' UNION ALL
SELECT 3,'7,8,9,10,11'

DECLARE @ID INT SET @ID=5
SELECT * FROM @T1 WHERE CHARINDEX(','+LTRIM(@ID)+',',','+NAME+',')>0
/*
ID NAME
----------- -----------
2 4,5,6
*/
fiiine 2012-08-17
  • 打赏
  • 举报
回复
%5%
sql2015 2012-08-17
  • 打赏
  • 举报
回复
前后加逗号后可以防止查询出 15,52,等包含5的记录,这个要看你的需求了。
kdg2000 2012-08-17
  • 打赏
  • 举报
回复
好吧,真没想到
kdg2000 2012-08-17
  • 打赏
  • 举报
回复
呃。。。
sql2015 2012-08-17
  • 打赏
  • 举报
回复

select * From t1
where ','+name+',' like '%,5,%'
Mr_Nice 2012-08-17
  • 打赏
  • 举报
回复
select * from t1 where name like '%5%'

34,588

社区成员

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

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