2014-03-25 26 views
1

我想在Sql Server中创建一个表值函数。在这里,我有3列,我想合并成一列可以说“新”。如果这个新列的值为1,那么这个新列应该显示3列的名称。例如,对于行1,它应该显示Isprod,对于行2,它应该显示IsCompetProd等等。将多列组合成一个SQL Server 2008

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

有没有办法做到这一点?

+0

你尝试过这么远吗?请通过编辑将您的代码发布到您的问题中。 –

+0

@ shree.pat18其实我搜查了它,但无法弄清楚如何启动它.. – user3201916

回答

1

尝试这样

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

如果我得到你想要的。使用case语句。试试这个:

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