问题:
如下图所示,如何用数据库语言实现将 EXCL文件中的图一表格转换成图二。
注意点:1.‘所学科目’字段中包含的科目个数不确定;
2.‘所学科目’字段中各科目的分隔符有可能是逗号或者顿号;
3.‘所学科目’字段中各科目前后有可能有空格;
如下图所示,如何用数据库语言实现将 EXCL文件中的图一表格转换成图二。
注意点:1.‘所学科目’字段中包含的科目个数不确定;
2.‘所学科目’字段中各科目的分隔符有可能是逗号或者顿号;
3.‘所学科目’字段中各科目前后有可能有空格;
解决方案 »
- 跨分区的local索引的扫描是怎样的
- 封装OCI的问题
- C语言 如何将变量 插入mySQL数据库,mySQL C语言封装变量的问题
- 重开帖加分问java输出xml问题
- 行号怎么取
- 请问如何进行时间字段与用户输入时间的比较?
- 在启动Oracle9时,读的哪个初始化参数文件???
- 菜鸟问题:存储过程是什么意思
- 触发器错误!!ORA-04091:表..发生了变化,触发器/函数不能读,---在线等待!!
- 怎样在数据库中建表?
- 无法为表空间users中的段创建initial区
- 卸载了oracle12C后装oracle11g,安装后出现oracle database configration assistant安装失败
from test
connect by level<=regexp_count(subject,'[[:punct:]]')+1;
create table T1
(
s_name VARCHAR2(10),
s_age NUMBER,
s_class VARCHAR2(10),
s_subject VARCHAR2(100)
);INSERT INTO t1 VALUES ('小明', 10, '三年级', '语文、数学、音乐');
INSERT INTO t1 VALUES ('小红', 11, '四年级', '美术、数学、古典音乐');WITH a1 AS
(SELECT s_name, s_age, s_class, regexp_substr(s_subject, '[^、]+', 1, 1) s1,
regexp_substr(s_subject, '[^、]+', 1, 2) s2, regexp_substr(s_subject, '[^、]+', 1, 3) s3,
regexp_substr(s_subject, '[^¡¢]+', 1, 4) s4
FROM t1)
SELECT s_name, s_age, s_class, s1
FROM a1
WHERE s1 IS NOT NULL
UNION ALL
SELECT s_name, s_age, s_class, s2
FROM a1
WHERE s2 IS NOT NULL
UNION ALL
SELECT s_name, s_age, s_class, s3
FROM a1
WHERE s3 IS NOT NULL
UNION ALL
SELECT s_name, s_age, s_class, s4 FROM a1 WHERE s4 IS NOT NULL ORDER BY s_name;