2017-10-11 73 views
0

我是SQL初學者,但不希望在使用代碼時實現此目的,因爲我研究過可以通過SQL實現該代碼。在sql中將行轉換爲列的動態轉置,不需要將列/行值作爲標題

查詢

select 
    c.CLAIM_ID, 
    e.CODE, 
    e.DX_TYPE 
from 
    claim_sub c, 
    diagnosis_sub e 
where 
    c.uid = e.DIAG_CLAIM_UID and 
    --e.uid = f.DXINFO_DIAG_UID and 
    c.claim_id in('IP0000013119','IP0000013124') 

電流輸出:

CLAIM_ID  DX_TYPE  CODE 
------------------------------------- 
IP0000013119 PRINCIPAL M62.82 
IP0000013119 SECONDARY E55.9 
IP0000013119 SECONDARY M79.652 
IP0000013119 SECONDARY M79.651 
IP0000013119 SECONDARY M51.37 
IP0000013119 SECONDARY R20.0 
IP0000013119 SECONDARY R94.4 
IP0000013119 SECONDARY R79.89 
IP0000013119 SECONDARY R73.09 
IP0000013124 PRINCIPAL K52.9 
IP0000013119 SECONDARY E86.0 
IP0000013124 SECONDARY R10.9 
IP0000013124 SECONDARY R11.10 
IP0000013124 SECONDARY R63.8 
IP0000013124 SECONDARY R79.89 

所需的輸出:

Claim_ID DX_TYPE1 CODE1 DX_TYPE2 CODE2 DX_TYPE3 CODE3 DX_TYPE4 CODE4 DX_TYPE5 CODE5 DX_TYPE6 CODE6 DX_TYPE7 CODE7 DX_TYPE8 CODE8 DX_TYPE9 CODE9 
IP0000013119 PRINCIPAL M62.82 SECONDARY E55.9 SECONDARY M79.652 SECONDARY M79.651 SECONDARY M51.37 SECONDARY R20.0 SECONDARY R94.4 SECONDARY R79.89 SECONDARY R73.09 
IP0000013124 PRINCIPAL K52.9 SECONDARY E86.0 SECONDARY R10.9 SECONDARY R11.10 SECONDARY R63.8 SECONDARY R79.89  
+0

提示:如果你有固定長度,則使用pivot或use case表達式。 –

回答

0

既然你沒有付出額外的努力,爲我們提供的DDL表使用加上一組測試數據,我不能給你在SQL代碼中的問題的答案。然而,我可以給你一個關於Jeff Moden撰寫的關於交叉標籤和樞軸主題的優秀文章的鏈接,因此你可以完全研究和理解這個主題:Part 1 & Part 2