将多个列组合到一个SQL Server 2008中

时间:2014-03-25 07:12:45

标签: sql-server-2008

我正在尝试在Sql Server中创建一个表值函数。这里我有3列,我想将它们合并为一列,让我们说“新”。如果它们的值为1,则此新列应显示3列的名称。例如,对于第一行,它应显示Isprod,对于第2行,它应显示IsCompetProd,依此类推。

 IsProd IsCompetProd       IsOther
    1            0             0
    0            1             0
    0            0             1
    1            0             0

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

如果我得到你想要的东西。使用案例陈述。试试这个:

SELECT
    tbl.*,
    (
    CASE 
        WHEN IsProd=1
        THEN 'IsProd'
        WHEN IsCompetProd=1
        THEN 'IsCompetProd'
        WHEN IsOther=1
        THEN 'IsOther'
        ELSE 'None'
    END 
    )AS newColumn       
FROM
    tbl

答案 1 :(得分:1)

试试这个

SELECT CASE WHEN IsProd=1 THEN 'IsProd'
            WHEN IsCompetProd=1 THEN 'IsCompetProd'
            WHEN IsOther=1  THEN 'IsOther'
        END [New]
FROM table1