在sql中拆分列值并在下一个linw中显示

时间:2017-05-12 08:36:08

标签: sql-server-2008

ID   NAME     TYPE
1    ABC      1,2,3,4
2    PQR      2,3,5 
3    XYZ      1,4
4    TCS      3,1
5    PPP      2,3

我想要这样的输出

ID   NAME     TYPE
1    ABC      1
              2
              3
              4
2    pqr      2
              3
              5 

等等

1 个答案:

答案 0 :(得分:0)

这有两个基本挑战;拆分逗号分隔的值列表,然后只显示ID和NAME的第一个实例。可能有更有效或更优雅的方法来实现这一目标。但是,我选择了一种使用光标的强力方法。你走了。

SELECT
    FIELDNAME
    ,FIELDVALUE
FROM (
    SELECT
        FieldName, 
        CASE FieldName
            WHEN 'Quantity'
                THEN CAST(MAX(CAST(plm.CodeValue AS NUMERIC)) AS VARCHAR(50))
            WHEN 'Expiry'
                THEN CAST(MAX(CAST(plm.CodeValue AS DATE)) AS VARCHAR(50))
        END AS FieldValue
    FROM MyTable) A
GROUP BY FieldName;

享受,

诺尔