这是我的SQL查询:
select case when table.field1 = 1 then 1
when table.field2 = 3 then 3
when table.field2 = 4 then 4
when table.field3 = 1 then 5
else .... Status //item name
from table
如果发生“其他”,我希望如此 - >该行将从dataSet中删除。 由于某种原因,我不能在where子句中使用“Status”。
想法?
答案 0 :(得分:4)
您可以使用公用表表达式:
with TempResult (id, status)
as
(
select primary_key_column,
case when table.field1 = 1 then 1
when table.field2 = 3 then 3
when table.field2 = 4 then 4
when table.field3 = 1 then 5
else 0
from table
)
select id
from TempResult
where status > 0
答案 1 :(得分:0)
最直接的方法是从“when”,即I.e.设置字段的条件。 field1 = 1或(3,4)中的field2或field 3 = 1