解决方案 »
- 求一个sql
- oracle数据出现乱码如何解决(数据库的编码和注册表都设成一致了)?
- 请教各位大牛,一条SQL.或者思路
- dataload中Shift+Page Down即\+{PGDN}無法使用
- 本人刚学习oracle,从其网站上下载了一个。安装上了,但是觉得不对。
- vb中如何接收dbms_output.pub_line()输出的值呢?
- oracle select ...into 与 insert ...select 有何区别?
- Oracle9i安装时,画面停留在启动图案,不能安装
- select d_count := count(*) from XCARLOCK; 语法那里错了? 谢谢
- 急等!!!!BDEadimin错误,该程序执行非操作,即将关闭.......????
- 关于PLSQL使用问题
- 求助:在局域网中,用PL/SQL可以连接oracle数据库,但查看表结构和执行sql就假死
也即:
1,aa,包含,Y
1,bb,包含,
1,cc,包含,Y
1,dd,不包含,
1,ee,不包含,
(select 1 id, 'a,b,c,d' name
from dual
union
select 2 id, 'e,f,g' name from dual
)select distinct id, regexp_substr(name, '[[:alnum:]]+', 1, level)
from a
connect by level <= length(regexp_replace(name, '[[:alnum:]]+')) + 1
行数很多的,没法逐一select啊……
而且我是9i,没法regexp_substr
WITH A AS
( SELECT 1 ID,'aa bb cc dd' NAME FROM DUAL UNION ALL
SELECT 2 ID,'aa cc dd' NAME FROM DUAL UNION ALL
SELECT 3 ID,'cc dd ee' NAME FROM DUAL
)
SELECT A.ID,
SUBSTR(' '||A.NAME||' ',
INSTR(' '||A.NAME||' ',' ',1,B.RN)+1,
INSTR(' '||A.NAME||' ',' ',1,B.RN+1)-INSTR(' '||A.NAME||' ',' ',1,B.RN)-1
) AS "单值"
,B.RN "第几个单值",
INSTR(' '||A.NAME||' ',' ',1,B.RN) "单值前空格的位置",
INSTR(' '||A.NAME||' ',' ',1,B.RN+1) "单值后空格的位置"
FROM A,
(SELECT ROWNUM RN FROM DUAL CONNECT BY ROWNUM<100) B
WHERE INSTR(A.NAME,' ',1,B.RN)>0
ORDER BY ID,B.RN;
具体如下:在数据为下面的情况下:
id, value
1, "aa bb cc dd"
2, "aa cc dd"
3, "cc dd ee"
with temp as
(select '1' id ,'aa'resposeinfo from dual
union all
select '1' ,'bb' from dual
union all
select '1' ,'cc' from dual
union all
select '1' ,'dd' from dual
union all
select '1' ,'ee' from dual
union all
select '1' ,'ff' from dual )select id,
a.value,
temp.resposeinfo resposeinfo,
case
when instr(a.value,resposeinfo)>0 then
resposeinfo
end request
from a
left join temp on temp.id=1