0

我有一个函数可以使用两个 case 语句在视图之外工作。问题是由于这个 case 语句,运行该函数需要 25 秒以上。因为它应该只需要大约 3 秒(与具有不调用 case 语句的视图的相同函数相比。)

case 语句在 select 中完成。

有趣的是(对我来说),如果我将其中一个案例陈述更改为直接的内容,即 D.CARS 而不是

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

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

无论案例语句的数量如何,视图的填充时间都不会少于 1 秒。

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

4

2 回答 2

3

CASE为什么不使用表达式而不是表达式COALESCE

COALESCE(D.CAR, C.CAR) AS CAR
于 2012-08-02T18:57:10.143 回答
-1

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

于 2012-08-02T18:57:36.000 回答