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,英语);

数据

学生数据集

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

老师数据集

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

目标结果集

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

最终SQL

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

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(源字符串,目标字符串)

结尾

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

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

上一篇:mybatis-数据库类型的对应关系


下一篇:MySQL分区表最佳实践