Oracle 字符串分割,并将内码转中文(简单实现),项目实战

时间:2020-05-29
本文章向大家介绍Oracle 字符串分割,并将内码转中文(简单实现),项目实战,主要包括Oracle 字符串分割,并将内码转中文(简单实现),项目实战使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

导读

  实际项目开发过程中,可能会遇到这种情况,A表中A1字段存储B表中的内码如(1,2,3),此时需要将A表中的A1字段转中文,为了方便理解,我们这里创建学生表和老师表,一个学生对应N个老师。

创建表

学生表

--学生表
CREATE TABLE S_STUDENT
(
S_ID NUMBER,
S_NAME VARCHAR2(50),
T_ID VARCHAR2(50)
)
--插入一条数据
INSERT INTO S_STUDENT VALUES (1,'陈彦斌','1,2,3')

老师表

--老师表
CREATE TABLE T_TEACHER(
T_ID NUMBER,
T_NAME VARCHAR2(50)
)
--插入三条数据
INSERT INTO T_TEACHER VALUES (1,'语文');
INSERT INTO T_TEACHER VALUES (2,'数学');
INSERT INTO T_TEACHER VALUES (3,'英语');

数据

学生数据集

老师数据集

目标结果集

最终SQL

SELECT S.S_ID,
       S.S_NAME,
       S.T_ID,
       TO_CHAR((SELECT WM_CONCAT(T_NAME)
                 FROM T_TEACHER T
                WHERE INSTR(  ',' || S.T_ID || ','   ,     ',' || T.T_ID || ','  ) > 0)) T_ID_NAME
  FROM S_STUDENT S

--前期准备
--WM_CONCAT:函数将列转行,并用“,”分割开来
--INSTR:字符查找函数,返回索引位置,格式--> INSTR(源字符串,目标字符串)

结尾

  如果对你有小小的帮助,记得帮忙点个推荐哟!~~

原文地址:https://www.cnblogs.com/chenyanbin/p/12988702.html