0

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

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

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

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

但我想使用单个查询来获取这些数据。

我怎样才能做到这一点?

请朋友们帮帮我...

4

1 回答 1

0

一种方法是使用 case 语句:

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)
    . . .
于 2012-08-18T19:03:11.663 回答