亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何實現用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

海门市| 灵寿县| 二连浩特市| 北海市| 台湾省| 伊宁市| 阿拉善左旗| 延寿县| 青河县| 宜章县| 宜黄县| 普洱| 漳平市| 尼勒克县| 长垣县| 嘉义市| 长兴县| 靖边县| 长汀县| 成武县| 湄潭县| 砚山县| 沛县| 呼玛县| 新干县| 兴业县| 大荔县| 左贡县| 改则县| 涞源县| 化隆| 临安市| 通州市| 博乐市| 南岸区| 许昌县| 定襄县| 灵武市| 长汀县| 曲麻莱县| 兰溪市|