rwhn.net
当前位置:首页 >> orAClE sql 实现查询时把一字符串按逗号分割,返回... >>

orAClE sql 实现查询时把一字符串按逗号分割,返回...

oracle 中可以用connect by把字符串按都好分割: 比如定义字符串: pv_no_list :='23,34,45,56'; SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token" FROM DUAL CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS...

创建测试表: create table test(id int,ips varchar2(100));insert into test values (1,'1;2;3');insert into test values (2,'4;5;6');insert into test values (3,'7;8');commit;执行: select id, REGEXP_SUBSTR(a.ips, '[^;]+', 1, l) ips...

可以直接在数值前面添加一个“空”就可以了。 sql:select ''||id from tablename where tablename.age>20; 解释:“||”是oracle中的专用连接符,前面加上一个“空”,这样就直接转换成字符串形式返回了。

with temp as( select 'China' nation ,'Guangzhou' city from dual union all select 'China' nation ,'Shanghai' city from dual union all select 'China' nation ,'Beijing' city from dual union all select 'USA' nation ,'New York' city...

单个语句无法实现 可以写个PLSQL块来实现 declare s char(10); i int; begin s:='123456' ; for i in 1..length(trim(s)) loop dbms_output.put_line( substr(s,i,1) ); end loop ; end;

所有版本的oracle都可以使用wm_concat()函数 。例:select wm_concat(name) as name from user; 但如果是oracle11g,使用listagg() within group()函数 。例:select listagg(name, ‘,’) within group( order by name) as name from user; 使用w...

SQL> create table a(t_name varchar2(10), t_desc varchar2(100)); Table created SQL> insert into a(t_name, t_desc) values ('zhangsan','a,b,c'); 1 row inserted SQL> insert into a(t_name, t_desc) values ('lisi','b,c'); 1 row insert...

是否可以用 like ‘%1%’作为条件来查询。 其实,不太了解分开查询的意思。能举个例子吗

创建测试表 create table tb(col1 varchar2(10),col2 varchar2(100));insert into tb values ('TEST1','C749,C153,C154,C155,C158,C183,C240');运行 select col1,substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (i...

select student from xxhd a, school b where patindex('%' || a.school || '%',b.school)>0

网站首页 | 网站地图
All rights reserved Powered by www.rwhn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com