如果设置为true,如何显示字段名称

时间:2014-01-21 08:33:58

标签: sql sql-server tsql

我有一个带有'ContentSubCategory'名称的表格。字段如下所示:

Id                  int 
FaName              nvarchar(50)    
IsSpecial           bit 
IsPerishable        bit 
IsDanger            bit 

现在我想要一个查询,显示内容名称列表和设置为True的属性。 例如:

Row          ContentInfo
------------------------------------
1            animal - IsSpecial
2            Human Body - IsSpecial,IsPerishable
3            Danger Goods - IsSpecial,IsDanger

我该怎么做?

2 个答案:

答案 0 :(得分:0)

select cast(FaName as varchar)+' - '+cast( 
case when IsSpecial = 1 then 'IsSpecial,' else '' as varchar)+cast(
case when IsPerishable = 1 then 'IsPerishable,' else '' as varchar)+cast(
case when IsDanger = 1 then 'IsDanger' else '' as varchar)
from your_table

试试这个并调整自己的喜欢。

答案 1 :(得分:0)

您还可以使用STUFF()

SELECT
    FaName
    ,ISNULL(
        NULLIF(
            STUFF(
                CASE WHEN IsSpecial = 1 THEN ', IsSpecial' ELSE '' END
                + CASE WHEN IsPerishable =1 THEN ', IsPerishable' ELSE '' END
                + CASE WHEN IsDanger = 1 THEN ', IsDanger' ELSE '' END
            , 1, 2, '')
        ,'')
    , 'Unknown')
    As Class
    FROM TableName