读书人

case 语句返回结果筛选有关问题

发布时间: 2012-03-12 12:45:33 作者: rapoo

case 语句返回结果筛选问题
select a
= case
when co1=‘x’,
then .....

结果会有包含‘x '以外的纪录,其中co1=。。。的纪录 case语句会起作用.
有时候为了提高性能,想只得到’x '的纪录,
这样的case 语句怎样写?
如果只对 co=x 的纪录感兴趣,这样做会提高查询的性能吗?
如果在then 中加 where 只能对case的结果起作用。


[解决办法]
只对 co=x 的纪录感兴趣
就在where 里写
where co= 'x '


[解决办法]
1.首先CASE用得不太:
Select a=case col where 'x ' then ... else ... end
2.在使用CASE於效率有任何的助,因CASE是加在每一上的,不能少量.
可以理 select ... from (select * from t where col= 'x ') t,就行,如果你的SQL很的也可以不用嵌套,直接件放在WHERE子句中

[解决办法]
SELECT ProductNumber, Category = 'Road ',Name
FROM Production.Product where ProductLine = 'R '
ORDER BY ProductNumber;

读书人网 >SQL Server

热点推荐