替换Case语句

时间:2012-08-02 18:53:50

标签: sql-server-2005 function view case

我有一个函数可以使用两个case语句来处理视图。 问题在于,由于这种情况声明,运行该函数需要25秒以上。它应该只需要约3秒钟(与具有不会调用案例陈述的视图的相同函数相比。)

case语句在select中完成。

有趣的是(对我而言),如果我将其中一个case语句更改为直接的,即D.CARS而不是

CASE WHEN D.CAR IS NOT NULL 
THEN D.CAR              
ELSE C.CAR
END AS CAR,

然后它可以加速~3秒来运行该功能但显示一些关闭结果。因此,如果select语句中有两个case语句,似乎只需要~25秒。

无论案例陈述数量多少,视图都不会少于1秒来填充。

有没有办法在获得正确结果的同时加快速度?

2 个答案:

答案 0 :(得分:3)

为什么不使用CASE

,而不是COALESCE表达式
COALESCE(D.CAR, C.CAR) AS CAR

答案 1 :(得分:-1)

您是否尝试过使用函数而不是case语句?