我现在有一个字段是存:1,2,3的,而它对应另一张值集表中。eg;课程人员表
id name Course
1 张三 1,2,3值集表
code name
1 语文
2 数字
3 英语
………………course 与code 关联 如何查询出结果为:张三 语文,数字,英语
各位大侠帮帮在下啊。Oracle字段拆分
id name Course
1 张三 1,2,3值集表
code name
1 语文
2 数字
3 英语
………………course 与code 关联 如何查询出结果为:张三 语文,数字,英语
各位大侠帮帮在下啊。Oracle字段拆分
解决方案 »
- 表分区问题和索引问题(比较简单的)
- 请教:这个SQL语句该如何写呀
- 求教关于多表删除
- 急急急!!谁知道哪里有 oralce provider for oledb(8。16或者以上的)下的,请留一下地址或者联系方式好吗?谢谢!
- 请问ORACLE 9i可以在WIN200Pro下安装吗?
- 只有一个dbf文件,如何恢复数据库,请大虾帮忙!!!!
- 数据库备份问题!!
- 如何在oracle8.1.7的图形界面中实现id值自动增加
- oracle 11g 行级触发器中:old与:new后面的字段名能不能是动态的?
- 求oracle 11g 32位客户端免安装版本
- SQL语句列转行.
- 请问大家一个SQL语句里面字符串计算的问题
with t1 as
(
select 1 id,'张三' name,'1,2,3' course from dual union all
select 2 id,'李四' name,'1,3,4' course from dual
),t2 as
(
select 1 code,'语文' name from dual union all
select 2 code,'数字' name from dual union all
select 3 code,'英语' name from dual union all
select 4 code,'历史' name from dual
)select peo,wm_concat(c_name) c_name
from
(
select t.id,t.name peo,t2.code,t2.name c_name
from
(
select distinct id,name,replace(regexp_substr(course,'[^,]+',1,level),',',' ') course
from t1
connect by level<=length(course)-length(replace(course,',',''))+1
) t,t2
where t.course = t2.code
)
group by peo
peo c_name
--------------------------------------
1 李四 语文,英语,历史
2 张三 语文,英语,数字
with t1 as
(select '1' id, '张三' name, '1,2,3' course
from dual
union
select '1' id, '李四' name, '2,4' course from dual),
t2 as
(select '1' code, '语文' name
from dual
union
select '2' code, '数学' name
from dual
union
select '3' code, '英语' name
from dual
union
select '4' code, '物理' name from dual)
select t1.name, dbms_lob.substr(wm_concat(t2.name))
from t1, t2
where instr(',' || t1.course || ',', ',' || t2.code || ',') > 0
group by t1.nameNAME COURSES
---------- --------------------
李四 数学,物理
张三 语文,英语,数学
方法土了点,但应该符合要求