• Oracle 字段是多个值的字符串的查询处理


    1、创建两张表一张用户表(T_User),一张兴趣小组表T_Group,其中小组成员字段存储用户ID列表以逗号隔开,

      表:T_User

      编号(F_ID)   名称(用户名)
      1         张三
      2         李四
      3         王五

      表:T_Group

      编号(F_ID)   名称(兴趣小组名字)//group_name    兴趣小组成员ID/member_list
      1         奥数                  1,2
      2         动物世界                2
      3         艺术                  1,2,3

     要求查询结果:

      编号(F_ID)   名称(兴趣小组名字)  兴趣小组成员ID
      1         奥数          张三,李四
      2         动物世界        李四
      3         艺术          张三,李四

      SQL语句:

    select f_id,group_name,

    (select wm_sys.wm_concat(to_char(f_name)) from t_user where insert(member_list,f_id)>0 ) as memberList_name

    from t_gourp

    这中间用到了两个函数

    wm_sys.wm_concat 将多行单列字段拼成已逗号隔开的字符串

    insert(string,substring) 返回substring 在字符string 的索引,这个函数很奇怪吧,不用管那么多直接当indexof 用就行了

    上面建表严重违反三大范式,但是实际开发中确实存在这样的情况,希望朋友们勿喷

  • 相关阅读:
    C++中逻辑操作符的重载分析
    不要62
    P1052 过河
    P1029 最大公约数和最小公倍数问题
    P1345 [USACO5.4]奶牛的电信Telecowmunication
    Dining
    Dinic
    [Scoi2015]小凸玩矩阵
    12.16
    bzoj 3529
  • 原文地址:https://www.cnblogs.com/Dylanblogs/p/4178268.html
Copyright © 2020-2023  润新知