我在bit
中有一个名为Status
的{table1
类型)列,表示0 = Stopped, 1 = Started
,并且有一个ID
{{}}的日志表{1}},行存在表示table1
中的Status
已损坏。
如何创建涵盖三种状态的table1
语句?
我正在考虑创建一个临时表,其中包含所有选定列以及一个新列(select
),该列从NewStatus
列获取值,并为子列表{i}过滤Status
table2
中的行ID。但我无法想象我能做到这一点!
有没有更好的方法?
答案 0 :(得分:1)
使用left join
select table1.*,
case when table2.id is null then
case table1.status
when 0 then 'stopped'
when 1 then 'started'
end
else 'damaged'
end
from
table1 left join table2 on table1.id = table2.id
您可能会使用isnull
来模糊您的意图,这可能会更快或更快。