zoukankan      html  css  js  c++  java
  • 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(源字符串,目标字符串)

    结尾

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

  • 相关阅读:
    2.19
    2.16sqlite
    2.14Android6
    2.12Android5
    2.11Android4
    2.09Android3
    2.08Android2
    2.06Android学习
    dpdk bond
    ContainerCreating
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12988702.html
Copyright © 2011-2022 走看看