SQL条件列和合并两行。

问题描述 投票:0回答:1

我找到了许多关于如何在列中添加条件或如何与'max'合并的例子,但我不清楚如何针对这种特殊情况进行操作。

SQL查询。

SELECT IDLOCK, DT, LOCKTYPE, PRODUCTATTRIBUTE, VALUE
    FROM LOCKREGISTER LR
    LEFT JOIN LOCKTYPES T
        ON LR.IDLOCKTYPE = T.IDLOCKTYPE

    LEFT JOIN PRODUCTATTRIBUTES PA
        ON LR.IDPRODUCT = PA.IDPRODUCT AND (PRODUCTATTRIBUTE = 'CodeSet' OR PRODUCTATTRIBUTE = 'KeySet')

    ORDER BY IDLOCK;
sql
1个回答
0
投票

你可以做条件激化 。

SELECT IDLOCK, DT, LOCKTYPE, 
       MAX(CASE WHEN PRODUCTATTRIBUTE = 'CodigoConjunto' THEN  PRODUCTATTRIBUTE END),
       MAX(CASE WHEN PRODUCTATTRIBUTE = 'CodigoConjunto' THEN  VALUE END),
       MAX(CASE WHEN PRODUCTATTRIBUTE = 'ClaveConjunto' THEN  PRODUCTATTRIBUTE END),
       MAX(CASE WHEN PRODUCTATTRIBUTE = 'ClaveConjunto' THEN  VALUE END)
FROM LOCKREGISTER LR LEFT JOIN 
     LOCKTYPES T
     ON LR.IDLOCKTYPE = T.IDLOCKTYPE LEFT JOIN 
     PRODUCTATTRIBUTES PA
     ON LR.IDPRODUCT = PA.IDPRODUCT AND 
        PRODUCTATTRIBUTE IN ('CodigoConjunto','ClaveConjunto')
GROUP BY IDLOCK, DT, LOCKTYPE;
© www.soinside.com 2019 - 2024. All rights reserved.