如何使用sql server在单个查询中更改标志值?

时间:2012-08-18 18:58:55

标签: sql-server

我有一个表,它包含像flag这样的列名,数据看起来像'Y'或'N'。

当我使用“从表名中选择标志”查询该表中的数据时,查询意味着它只显示“Y”或“N”。

但我需要的是,如果'Y'表示'是'或'N'表示'否。

如果我们使用存储过程意味着我们将使用“If”或“Case”条件轻松地执行此概念。

但我想使用单一查询来获取该数据。

我该怎么做?

请帮帮我朋友......

1 个答案:

答案 0 :(得分:0)

一种方法是使用案例陈述:

select (case when flag = 'Y' then 'Yes'
             when flag = 'N' then 'No'
             else 'Oops!'
        end) as FullFlag
from table t

您也可以使用计算列执行此操作。您可以定义表并将标志存储为一个位(尽可能高效),然后使用计算列来检索另一个值:

create table . . . 
    FlagBit bit,
    Flag as (case when FlagBit = 1 then 'Yes' else 'No' end)
    . . .