select * from T_A where id in
(case when (1=1)
then (select 1 as id union all select 2 union all select id from T_A)
else (select 4 as id union all select 5 union all select id from T_A)
end)始终报错
(case when (1=1)
then (select 1 as id union all select 2 union all select id from T_A)
else (select 4 as id union all select 5 union all select id from T_A)
end)始终报错
select * from T_A where id in
(case when (fid>1)
then (select 1 as id union all select 2 )
else (select 4 as id union all select 5 )
end)
如变量@x为 (1,2,3,4,5) 要得出1变5,2变4,3不变,4变2,5变1的数据
为嵌套的情况为
case when @x=1 then 5 when x=2 then 4 when x=3 then 3 when x=4 then 2 else 1 end
嵌套的情况
case when @x in (1,2) then case when @x=1 then 5 else 4 end
else case when @x=3 then 3 when x=4 then 2 else 1 end end
与if else 的嵌套差不多,自已多试试就明白.
语法如下:
语法-->简单 CASE 函数:
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
ENDCASE 搜索函数:CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
select T_A.*
from T_A,(select 1 as id union all select 2 ) t1,(select 4 as id union all select 5 ) t2
where T_A.id = case when fid>1 then t1.id else t2.id end