使用SQL Server CASE语句消除除零

时间:2012-07-11 14:45:20

标签: sql case

我正在尝试使用T-SQL CASE语句中的SELECT消除零错误。出于某种原因,我不断收到错误。这是我的逻辑。

SELECT 
    CASE 
       WHEN tb1.wpf = 0.000 THEN '0.000' 
       ELSE SUM(tb2.weight/tb1.wpf) 
    END AS Average 
FROM Table1 tb1, table2 tb2 
GROUP BY tb1.wpf

我没有包含联接和我的所有逻辑来保持我的问题具体到这个案例。我怎样才能摆脱这个错误?

1 个答案:

答案 0 :(得分:1)

CASE将应用于聚合,而不是单个位。试试这个:

SELECT SUM(Average) FROM (
    SELECT 
            CASE 
               WHEN tb1.wpf = 0 THEN 0
               ELSE tb2.weight / tb1.wpf
            END AS Average 
        FROM Table1 tb1, table2 tb2 
) a