zoukankan      html  css  js  c++  java
  • 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 用就行了

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

  • 相关阅读:
    IE8,IE10下载的临时文件到哪里去了???
    安全退出,清空Session或Cookie
    删掉SQL Server登录时登录名下拉列表框中的选项
    C#中==、Equals、ReferenceEquals的区别
    [转载]C#中as和is关键字的用法
    HTML5权威指南 5.绘制图形
    HTML5权威指南 3.HTML5的结构
    HTML5权威指南 2.HTML5与HTML4的区别
    HTML5权威指南 1.Web时代的变迁
    web前端黑客技术揭秘 9.Web蠕虫
  • 原文地址:https://www.cnblogs.com/Dylanblogs/p/4178268.html
Copyright © 2011-2022 走看看