帮忙写条sql - Oracle / 开发
table有两个字段code、name
--------------------------
---code--------------name----------
--10000--------------小张----------
--20000------------小李,小陈-------
--30000-----------小王,小周,小米---
code字段是数字,name字段是名字,有可能是一个或多个,多个的时候用逗号分隔。
现在要的查询结果是:如果name有多个的话,分成多条记录。
比如按上面的数据,结果就是:
10000---小张
20000---小李
20000---小陈
30000---小王
30000---小周
30000---小米
查出这样的六条数据来,sql该怎么写呢,数据库是oracle
又是拆分 字段 。。。
那天想着写个函数
有招不
给个思路:自己在调整一下
SQL code:
WITH n AS (SELECT '30000' AS a,',小王,小周,小米,' b from dual
)
SELECT a,SUBSTR(b, SP, EP - SP) STR
from (SELECT a,
b,
INSTR(b, ',', 1, ROWNUM) + 1 SP,
INSTR(b, ',', 1, ROWNUM + 1) EP
from n
CONNECT BY ROWNUM < 100)
WHERE EP > 0
可以哦
相关问答:
在执行包的时候引用oracle spatial空间函数出错,出错情况如下
Errors in file
/user/oracle/app/oracle/admin/grid/udump/grid1_ora_143768.trc: ORA-29902:
error in executing ODCIIndexStart() routine ORA-0 ......
select distinct '1' t1,'2' t2,'3' t3,'4' t4 from table 查出来的结果为
1,2,3,4
我想得以下这样的效果
1
2
3
4
请问一下有什么办法可以解决???
没有好的方法,用union,一条条记录拼接
SQL code:
wi ......
通过NAME字段条件查询一个数据表,假设我有100个姓名,有以下两个方法,
方法1:
把100个Name 组成一个SQL语句,比如 Select * from tmp_table where Name='张三' or Name ='李四' Or ...Or Name='第一百个姓名'
......