簡體   English   中英

在同一表上聯接多個選擇查詢

[英]Joining multiple select queries on same table PostgreSql

下面是我得到的示例表結構,

C1  C2  C3 C4
A   D   G  X
B   E   H  X
C   F   I  X

select C2 as 1_C2, C3 as 1_C3 from table1 where C1 = A and C4=X
select C2 as 2_C2, C3 as 2_C3 from table1 where C1 = B and C4=X
select C2 as 3_C2, C3 as 3_C3 from table1 where C1 = C and C4=X

以上是我得到的三個選擇語句。 現在,我需要連接所有三個select語句,並僅獲得一行作為輸出,例如,

1_C2 2_C2 3_C2 1_C3 2_C3 3_C3    
   D    E    F    G    H    I

看到其他多個帖子,但不符合此要求。 非常感謝您的幫助。

您可以將CASE表達式與MAX()結合使用:

select MAX(CASE WHEN C1 = 'A' THEN C2 END) as 1_C2,
       MAX(CASE WHEN C1 = 'B' THEN C2 END) as 2_C2,
       MAX(CASE WHEN C1 = 'C' THEN C2 END) as 3_C2,
       MAX(CASE WHEN C1 = 'A' THEN C3 END) as 1_C3,
       MAX(CASE WHEN C1 = 'B' THEN C3 END) as 2_C3,
       MAX(CASE WHEN C1 = 'C' THEN C3 END) as 3_C3
  from table1
 where C1 in ('A', 'B', 'C')
   and C4 = 'X';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM