表内一个字段
上海(空格)广州(空格)云南
北京(空格)上海
山西(空格)北京(空格)广州
...
我有个字符串为”广州(空格)山西”我想输出所有含有上海和山西的行的数据
结果
上海(空格)广州(空格)云南
山西(空格)北京(空格)广州
上海(空格)广州(空格)云南
北京(空格)上海
山西(空格)北京(空格)广州
...
我有个字符串为”广州(空格)山西”我想输出所有含有上海和山西的行的数据
结果
上海(空格)广州(空格)云南
山西(空格)北京(空格)广州
解决方案 »
- sql优化问题
- Oracle11g登陆SQLPlus时遇到ORA-01034,ORA-27101错误
- solaris上安装ORACLE10g数据库--急!
- exp全库导出时导出哪些东西?
- Oracle 命令行启动企业管理器
- 对ORACLE数据库服务器进行检测的应用程序经常报"ORA-03113:通信通道的文件结束!"的错误,为什么?
- OLE DB Provider列表中没有 Oracle Provider for Ole DB。
- 菜鸟问,怎么执行这个函数取得返回值?
- 怎么写oracle的批处理文件!
- ■■谁能回答谁就是oracle高手!!在oracle 网站上下载的工具都可以正常使用吗?
- 如何批量导出sql文件
- Oracle视图支持传参,这个问题就好办了。
where repleace(col,' ','') like '%上海%' or repleace(col,' ','') like '%山西%'
是说要求返回的结果里包含 上海 或者 山西 是吗
但第二行业含有上海,怎么没返回到查询结果,晕了。
利用正则表达式解,大致差不多
2楼的回答得差不多,函数名写错了,是replace
而且这个函数也没什么必要,空格不影响结果如果是要返回同时含有上海和山西值得话,代码如下
create table test_a(col varchar2(50) not null);insert into test_a values('上海 广州 云南');
insert into test_a values('北京 上海');
insert into test_a values('山西 北京 广州');
insert into test_a values('上海 广州 山西');
insert into test_a values('广州 山西 上海');select * from test_a where col like '%上海%山西%' or col like '%山西%上海%';COL
上海 广州 山西
广州 山西 上海
谢谢 不过我里面是动态字符串
可能只有”上海”
或者 ”上海 广东”
或者 ”上海 广东 北京”
不是一个固定的字符串
在不切割字符串的情况下如何模糊查询 ”上海 广东 北京”和 col 之间的关系
例如
insert into test_a values('上海 广州 云南');
insert into test_a values('北京 上海');
insert into test_a values('山西 北京 广州');
insert into test_a values('上海 广州 山西');
insert into test_a values('广州 山西 上海');
我动态的字符串是”上海”
结果
上海 广州 云南
上海 广州 山西
广州 山西 上海如果我动态的字符串是” 北京 上海 广东”
结果
'上海 广州 云南'
'北京 上海'
'山西 北京 广州'
'上海 广州 山西'
'广州 山西 上海'
动态的字符串中的一个地方存在 就显示整条记录有没有不用自建函数的方法
一句sql能解决的?
where instr(col,'上海') >0 or instr(col,'山西')>0
select * from tb
where instr(col,'上海') >0 or instr(col,'山西')>0
or
select * from tb
where col like '%上海%' or col like '%山西%'
地方作比较 写在一个通用的sql语句里面value = '%上海%'
select * from tb
where col like '%value%'
只能查找一个上海地方value = '%上海%山西%'
select * from tb
where col like '%value%'
只能查找一个既有上海又有山西的地方value=?
select * from tb
where col like '%value%'
能查找既有上海又有山西的地方注1 value是变量 里面可能带很多个城市
注2 value内的城市名字和之间的符号可以自由搭配 但是不能把value切割
这样查出来的结果是 "A"AND"B"AND"C"
我想要得是 "A" or "B" or "C"
1 2
2 4
3 6
4 3
5 1
...求大于等于最大值的所有行(最简单的方法)结果
比如最大值6
3 6
15 6
68 6
...