0

我有一个名为in的 ( bittype) 列,其中指示 to并且有一个日志表具有of ,行存在表明in已损坏。Statustable10 = Stopped, 1 = StartedIDtable1Statustable1

如何创建select涵盖三种状态的声明?我正在考虑创建一个临时表,其中包含所有选定的列以及一个NewStatus从列中获取其值的新列()和一个用于过滤行 IDStatus的子选择语句。但我无法想象我怎么能做到这一点!table2table1

有没有更好的方法?

4

1 回答 1

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来掩盖您的意图,这可能会更快,也可能不会更快。

于 2013-08-05T09:41:44.710 回答