帮忙写条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
可以哦
相关问答:
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
将一个查询语句赋给一个变量,如下:
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
怎么样才能执行它呢?
请高手,仁兄,侠姐帮帮忙啊
多谢,可以啦,高手啊
直接执行就行了
exec ......
通过NAME字段条件查询一个数据表,假设我有100个姓名,有以下两个方法,
方法1:
把100个Name 组成一个SQL语句,比如 Select * from tmp_table where Name='张三' or Name ='李四' Or ...Or Name='第一百个姓名'
......