要怎样简化一下很多not like的语句?

ggsysy 2013-12-03 11:20:01
select * from table where 城市 not like '%广东%' and 城市 not like '%上海%' and 城市 not like '%北京%'


我用的是sql server2008,经常会遇到类似的条件判断,要怎样才能简化一下?
...全文
444 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggsysy 2013-12-04
  • 打赏
  • 举报
回复
10楼的可以。不过看来还是用之前的好了。
LongRui888 2013-12-03
  • 打赏
  • 举报
回复
引用 6 楼 guangguang2007 的回复:
回4楼,这样还算简化嘛?好像更复杂的样子。
看着是有点复杂,但是就像版主的说的,最好还是先把你要比较的字符串,放到一个表里, 然后关联,其实就是和我写的是一样的,这个确实没有太简单的代码
發糞塗牆 2013-12-03
  • 打赏
  • 举报
回复
所以我说先预存起来
ggsysy 2013-12-03
  • 打赏
  • 举报
回复
回4楼,这样还算简化嘛?好像更复杂的样子。
發糞塗牆 2013-12-03
  • 打赏
  • 举报
回复
把这些not like的放到一个表,然后关联
LongRui888 2013-12-03
  • 打赏
  • 举报
回复
引用 2 楼 guangguang2007 的回复:
[quote=引用 1 楼 u012173239 的回复:] 试试这句行不行。
select * from table 
where 城市 not like in ('%广东%','%上海%','%北京%')
关键字 'in' 附近有语法错误。[/quote] 这样呢:
select * 
from table t
inner join
(
select '%广东%' v union all
select '%上海%' union all
select '%北京%'
)vv
 on t.城市 not like vv.v
Landa_Jimmy 2013-12-03
  • 打赏
  • 举报
回复
引用 1 楼 u012173239 的回复:
试试这句行不行。
select * from table 
where 城市 not like in ('%广东%','%上海%','%北京%')
不好意思这句话是错的。
ggsysy 2013-12-03
  • 打赏
  • 举报
回复
引用 1 楼 u012173239 的回复:
试试这句行不行。
select * from table 
where 城市 not like in ('%广东%','%上海%','%北京%')
关键字 'in' 附近有语法错误。
Landa_Jimmy 2013-12-03
  • 打赏
  • 举报
回复
试试这句行不行。
select * from table 
where 城市 not like in ('%广东%','%上海%','%北京%')
飞啊子 2013-12-03
  • 打赏
  • 举报
回复
楼主那样就挺好的。。
---涛声依旧--- 2013-12-03
  • 打赏
  • 举报
回复

--try this
select * from table 
where CHARINDEX('广东',城市)<1
AND CHARINDEX('上海',城市)<1 
AND CHARINDEX('北京',城市)<1
daluobooo 2013-12-03
  • 打赏
  • 举报
回复
in的括号里不能有通配符吧

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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