2017-10-11 25 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