CASE 语句可以在SELECT 子句和ORDER BY 子句中使用
CASE语句分为两种Case Simple Expression and Case Search Expression
Case Simple Expression:
CASE Column1 WHEN V1 THEN R1 WHEN V2 THEN R2 ELSE R3 END
Case Search Expression
CASE WHEN C1=V1 THEN R1 WHEN C2=V2 THEN R2 ELSE R3 END
当在Orderby 中使用Case语句时,如果排序是按照ASC的话,会将不满足条件的结果集无序地放在总结果集的前面,然后将满足条件的结果集排序后附件到总结果集中,如果使用DESC的话,则将满足条件的结果集放在总结果集的前面,然后将为满足条件的结果集无序地附加到总结果集后面:
也可以在 where 条件中使用, 如:
DECLARE @FlagINT=1;
select * from T5
WHERE ID1=(CASE WHEN @Flag=1 THEN '1' ELSE '2' END) ;