我在Sql Server中有以下情况:
在表格中,我们有一个列,我们用三个可能的值1,2和3填充。假设1表示是,2表示否,3表示可能。
有没有办法选择此列显示的值为yes,no,而不是1,2和3?
答案 0 :(得分:0)
是..你可以使用CASE Expression来做到这一点
select
case value
when 1 then 'yes'
when 2 then 'no'
when 3 then 'maybe'
end
from
table
答案 1 :(得分:0)
您可以使用Case进行此操作,如下所示
SELECT
CASE test_column
WHEN 1THEN 'YES'
WHEN 2 THEN 'NO'
ELSE 'MAY BE'
END as test_op
FROM table1
答案 2 :(得分:0)
是的,有可能,您可以使用类似这样的案例
select
case when field = 1 then 'YES'
when field = 2 then 'NO' else 'MAYBE' end FieldName
from table
注意:除了1或2之外的任何值都可能是,您可以为数字3添加另一个案例。
答案 3 :(得分:0)
在其他答案中看到的case/when
语句的替代方法是创建一个包含值描述的引用表(1
/ 2
/ 3
)。
这样做的最大好处是,如果在多个地方使用它,您可以一次更新所有这些。
dbo.curValDesc
表是您需要创建/填充的参考表。然后您的消费查询看起来就像底部的那样。
create table dbo.existingData
(
rowID int
, curVal tinyint --the column with values of 1/2/3
)
insert into dbo.existingData
values (1, 1)
, (2, 2)
, (3, 3)
, (4, 3)
, (5, 2)
, (6, 1)
, (7, 1)
create table dbo.curValDesc
(
curVal tinyint
, curValDesc varchar(10)
)
insert into dbo.curValDesc
values (1, 'Yes')
, (2, 'No')
, (3, 'Maybe')
select ed.rowID
, cvd.curValDesc
from dbo.existingData as ed
inner join dbo.curValDesc as cvd on ed.curVal = cvd.curVal