中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現用sql語句查詢交叉表

發布時間:2021-09-24 11:38:05 來源:億速云 閱讀:142 作者:iii 欄目:數據庫

本篇內容介紹了“如何實現用sql語句查詢交叉表”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

表一:   
  組名   
  成員1id   
  成員2id   
  成員3id   

  示例數據:   
  沖鋒組     1       2       3   
  后衛組     2       3       4   

  表二:   
  成員id   
  成員姓名   

  示例數據:   
  1     張三   
  2     李四   
  3     王五   
  4     陸二   

  要求結果     

  沖鋒組     張三       李四       王五   
  后衛組     李四       王五       陸二  

復制代碼 代碼如下:


--建立測試環境   
  Create   Table   表1(組名   varchar(10),成員1id   varchar(10),成員2id   varchar(10),成員3id   varchar(10))   
  --插入數據   
  insert   into   表1   
  select   '沖鋒組','1','2','3'   union   
  select   '后衛組','2','3','4'     
    Create   Table   表2(成員id   varchar(10),成員姓名   varchar(10))   
  --插入數據   
  insert   into   表2   
  select   '1','張三'   union   
  select   '2','李四'   union   
  select   '3','王五'   union   
  select   '4','陸二'     

  --測試語句   
    select   a.組名,   
  成員1=(select   成員姓名   from   表2   b   where   a.成員1id=b.成員id),   
  成員1=(select   成員姓名   from   表2   b   where   a.成員2id=b.成員id),   
  成員1=(select   成員姓名   from   表2   b   where   a.成員3id=b.成員id)   
  from   表1   a   

      
  --刪除測試環境   
  Drop   Table   表1   
  Drop   Table   表2   

  /*   
  組名                   成員1                 成員1                 成員1                   
  ----------   ----------   ----------   ----------     
  沖鋒組                 張三                   李四                   王五   
  后衛組                 李四                   王五                   陸二   

  (所影響的行數為   2   行)   
  */

復制代碼 代碼如下:


select     
          a.組名,   
          成員1   =   max(case   b.成員id   =   a.成員1id   then   b.成員姓名   end),   
          成員2   =   max(case   b.成員id   =   a.成員2id   then   b.成員姓名   end),   
          成員3   =   max(case   b.成員id   =   a.成員3id   then   b.成員姓名   end),   
  from     
          表一   a,   
          表二   b   
  group   by   
          a.組名

復制代碼 代碼如下:


select     
          a.組名,   
          成員1   =   max(case   b.成員id   =   a.成員1id   then   b.成員姓名   end),   
          成員2   =   max(case   b.成員id   =   a.成員2id   then   b.成員姓名   end),   
          成員3   =   max(case   b.成員id   =   a.成員3id   then   b.成員姓名   end)   
  from     
          表一   a,   
          表二   b   
  group   by   
          a.組名

復制代碼 代碼如下:


select   a.組名,   
                成員1=(select   成員姓名   from   表2   b   where   a.成員1id=b.成員id),   
                成員1=(select   成員姓名   from   表2   b   where   a.成員2id=b.成員id),   
                成員1=(select   成員姓名   from   表2   b   where   a.成員3id=b.成員id)   
  from   表一   a   

復制代碼 代碼如下:


正解是   
  select   表1.組名,   
                (select   表1.成員姓名   from   表2   b   where   表1.成員1id=表2.成員id)   as   成員1id,   
                (select   表1.成員姓名   from   表2   b   where   表1.成員2id=表2.成員id)   as   成員2id,   
                (select   表1.成員姓名   from   表2   b   where   表1.成員3id=表2.成員id)   as   成員3id   
  from   表1,表2

“如何實現用sql語句查詢交叉表”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

兴宁市| 阿勒泰市| 新和县| 郓城县| 盐源县| 嘉义县| 岳普湖县| 永丰县| 安平县| 潼关县| 枣阳市| 泰州市| 酉阳| 贵州省| 太仆寺旗| 佛坪县| 贺州市| 栖霞市| 通海县| 门头沟区| 厦门市| 延津县| 彭阳县| 新绛县| 保德县| 济南市| 莆田市| 长沙市| 晋江市| 海淀区| 七台河市| 天津市| 玉田县| 山阳县| 灵宝市| 长乐市| 西贡区| 万安县| 赤水市| 永安市| 惠来县|