不包含某些值的SQL语句应该怎么写

倾城之恋 2012-03-30 02:53:57
table1如下
bbb(字段)
2
3
5
1
想要求出
2
1
下面的SQL表达式是不对的。但这种写法应该怎么写呢。ARR必须是用变量的.希望高手指点
declare @arr varchar(10) set @arr='3,5'
select * from table1 where bbb not in (@arr)
...全文
6479 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
倾城之恋 2012-03-30
  • 打赏
  • 举报
回复
可以了,两种都可以。我用NOT LIKE 。谢谢毓华
倾城之恋 2012-03-30
  • 打赏
  • 举报
回复
select * from table1 where ',' + @arr + ',' not like '%,'+cast(bbb as varchar) + ',%'
对哦。可以用NOT LIKE 我试下。谢谢。
dawugui 2012-03-30
  • 打赏
  • 举报
回复
create table table1(bbb int)
insert into table1 values(2)
insert into table1 values(3)
insert into table1 values(5)
insert into table1 values(1)
go

declare @arr varchar(10) set @arr='3,5'

select * from table1 where charindex(','+cast(bbb as varchar) + ',' , ',' + @arr + ',') = 0
/*
bbb
-----------
2
1

(所影响的行数为 2 行)
*/

select * from table1 where ',' + @arr + ',' not like '%,'+cast(bbb as varchar) + ',%'
/*
bbb
-----------
2
1

(所影响的行数为 2 行)
*/

drop table table1
dawugui 2012-03-30
  • 打赏
  • 举报
回复
select * from table1 where charindex(','+cast(bbb as varchar) + ',' , ',' + @arr + ',') = 0

34,837

社区成员

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

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