+ -
当前位置:首页 → 问答吧 → 请教select中查询字段是否在字符串中怎么写?

请教select中查询字段是否在字符串中怎么写?

时间:2011-11-15

来源:互联网


select * from 表 where 字段1 like 字符串

但操作好像失败

求教呀~谢谢!

作者: jarkar   发布时间: 2011-11-15

select * from 表 where 字段1 like '%' + 字符串 + '%'

作者: dawugui   发布时间: 2011-11-15

引用楼主 jarkar 的回复:

select * from 表 where 字段1 like 字符串

但操作好像失败

求教呀~谢谢!

select * from 表 where charindex(字符串,字段) > 0

作者: dawugui   发布时间: 2011-11-15

我的要求是列出所有字段1是否在字符串中存的记录
而不是字符串在字段1中存在

比如字段1是否在字符串'%001,002,003,004,.....%'这样的意思

作者: jarkar   发布时间: 2011-11-15

反过来?

select * from 表 where charindex(字段,字符串) > 0
select * from 表 where 字符串 like '%' + 字段1 + '%'

作者: dawugui   发布时间: 2011-11-15

SQL code
select * fromwhere patindex('%'+字段1+'%',字符串 )>0

作者: roy_88   发布时间: 2011-11-15

引用 5 楼 roy_88 的回复:
SQL code
select * from 表 where patindex('%'+字段1+'%',字符串 )>0


好像不行

作者: jarkar   发布时间: 2011-11-15

判断是否存在 ,查询结果为空就表示不存在。。不是很明白楼主什么意思 呵呵。。

作者: toocoldlove   发布时间: 2011-11-15

引用 7 楼 toocoldlove 的回复:
判断是否存在 ,查询结果为空就表示不存在。。不是很明白楼主什么意思 呵呵。。


比如:
记录号 字段1 
1 001
2 002
3 001

4 003
5 001
6 008

字符串是'001,002'

我想用select列出字符串中有字段1值
的记录

作者: jarkar   发布时间: 2011-11-15

接上:

select结果是:
记录号 字段1  
1 001
2 002
3 001
5 001

作者: jarkar   发布时间: 2011-11-15

SQL code

--> 测试数据: [tb]
if object_id('[tb]') is not null drop table [tb]
create table [tb] (记录号 int,字段1 varchar(3))
insert into [tb]
select 1,'001' union all
select 2,'002' union all
select 3,'001' union all
select 4,'003' union all
select 5,'001' union all
select 6,'008'

--开始查询
select * from [tb] where CHARINDEX(字段1,'001,002')>0

--结束查询
drop table [tb]

/*
记录号         字段1
----------- ----
1           001
2           002
3           001
5           001

(4 行受影响)

作者: geniuswjt   发布时间: 2011-11-15

SQL code
select * from tb where charindex(','+字段1=',',',001,002,')>0

作者: qianjin036a   发布时间: 2011-11-15

SQL code
select * from tb where charindex(字符串,字段) > 0

作者: fredrickhu   发布时间: 2011-11-15