您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何實現(xiàn)用sql語句查詢交叉表”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
表一:
組名
成員1id
成員2id
成員3id
示例數(shù)據(jù):
沖鋒組 1 2 3
后衛(wèi)組 2 3 4
表二:
成員id
成員姓名
示例數(shù)據(jù):
1 張三
2 李四
3 王五
4 陸二
要求結(jié)果
沖鋒組 張三 李四 王五
后衛(wèi)組 李四 王五 陸二
復(fù)制代碼 代碼如下:
--建立測試環(huán)境
Create Table 表1(組名 varchar(10),成員1id varchar(10),成員2id varchar(10),成員3id varchar(10))
--插入數(shù)據(jù)
insert into 表1
select '沖鋒組','1','2','3' union
select '后衛(wèi)組','2','3','4'
Create Table 表2(成員id varchar(10),成員姓名 varchar(10))
--插入數(shù)據(jù)
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
--刪除測試環(huán)境
Drop Table 表1
Drop Table 表2
/*
組名 成員1 成員1 成員1
---------- ---------- ---------- ----------
沖鋒組 張三 李四 王五
后衛(wèi)組 李四 王五 陸二
(所影響的行數(shù)為 2 行)
*/
復(fù)制代碼 代碼如下:
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.組名
復(fù)制代碼 代碼如下:
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.組名
復(fù)制代碼 代碼如下:
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
復(fù)制代碼 代碼如下:
正解是
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
“如何實現(xiàn)用sql語句查詢交叉表”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。