PIVOT on Common Table Expression

前端 未结 3 1267
南旧
南旧 2020-12-18 04:28

I have a CTE as follows

WITH  details
        AS ( SELECT FldId
                   ,Rev
                   ,Words
                   ,row_number() OVER ( PAR         


        
3条回答
  •  旧巷少年郎
    2020-12-18 05:01

    You do this:

    SELECT
        FldId,
        [Description],
        [Objectives],
        [Specification],
        [Requirements]
    FROM (
        SELECT
            ReferenceName,
            FldId,
            REV,
            Words
        FROM CTE
        WHERE RowNumber = 1
    ) t
    PIVOT (
        MIN(Words)
        FOR ReferenceName IN ([Description], [Objectives], [Specification], [Requirements])
    ) PIV
    

    Or you can add it to your CTE, like this:

    ;WITH CTE2 AS (
        SELECT
            FldId,
            REV,
            [Description],
            [Objectives],
            [Specification],
            [Requirements],
            ROW_NUMBER() OVER (PARTITION BY FldId ORDER BY REV DESC) AS RowNumber
        FROM TBL
    PIVOT (
            MIN(Words)
            FOR ReferenceName IN ([Description], [Objectives], [Specification], [Requirements])
        ) PIV
    )
    
    SELECT
        FldId,
        REV,
        [Description],
        [Objectives],
        [Specification],
        [Requirements]
    FROM CTE2
    WHERE RowNumber = 1
    

提交回复
热议问题