有数据表T_table,其中有字段z1。z1存储由空格分隔的多个字符串,例如:
记录号 z1
1 ab1 df1 ft1
2 df1 ab1 ft1
3 df1 ft1 ab1
4 ab df1 ft1
5 df1 ab ft1
6 df1 ft1 ab
希望检索z1中包含“ab”但不包含“ab1”的记录(只包含后3条记录),SQL语句是什么?
记录号 z1
1 ab1 df1 ft1
2 df1 ab1 ft1
3 df1 ft1 ab1
4 ab df1 ft1
5 df1 ab ft1
6 df1 ft1 ab
希望检索z1中包含“ab”但不包含“ab1”的记录(只包含后3条记录),SQL语句是什么?
解决方案 »
- 我的产权能保障吗?
- 难题!~~求解决方法~
- MsSql中修改一条数据的原理是什么?
- LOG增大问题,在线等待!!!
- 重发求助:sql2008中的存储过程、触发器解密问题。
- SA是什么意思??是个数据库名称吗??
- 我来报到了,另外有谁能把全文检索的原理以及实现给我说一下吗??
- 请教高手!!我如果要在程序中实现修改sql server数据库的默认通讯管道为tcp/ip!!!!
- 请教,如何备份存储过程,加强它的移植性!?
- 從別的庫中查詢一結果至本庫中的一個表a中,如果a不存在就創建a表,這樣的查詢語句怎樣寫,請大家指教,我第一次學用過程,謝謝!!!
- 标识列问题
- 如何在表中增加一列如下值:CNPA000001 ,CNPA000002
select * from T_table where charindex(' ab ',' '+z1+' ')>0 and charindex(' ab1 ',' '+z1+' ')=0
drop table tb
gocreate table tb(记录号 int,z1 varchar(20))
insert into tb(记录号,z1) values(1, 'ab1 df1 ft1')
insert into tb(记录号,z1) values(2, 'df1 ab1 ft1')
insert into tb(记录号,z1) values(3, 'df1 ft1 ab1')
insert into tb(记录号,z1) values(4, 'ab df1 ft1')
insert into tb(记录号,z1) values(5, 'df1 ab ft1')
insert into tb(记录号,z1) values(6, 'df1 ft1 ab')select * from tb where charindex('ab' , z1) > 0 and charindex('ab1' , z1) = 0 drop table tb/*
记录号 z1
----------- --------------------
4 ab df1 ft1
5 df1 ab ft1
6 df1 ft1 ab(所影响的行数为 3 行)
*/
我是用:
WHERE cast(' '+f5+' ' as char(54))
like '% ab %'
效果相同.