0

当我尝试将 varchar 字段转换为十进制时,我在排除一列或多列时遇到了一些问题。我的语句如下:

SELECT title, CAST(sumValues AS DECIMAL(9,2)
WHERE title != 'Total Clients') AS sumVal
FROM client_summary

我想将该sumValues字段转换为小数,但标题为“总客户”的列除外(计算人数时没有小数)。这怎么可能是我合适的陈述?

4

1 回答 1

1

您可以试试这个:注意,语句的所有部分都case...when...else必须返回相同类型的数据(或隐式转换)。

SELECT title, 
CASE WHEN title <> 'Total Clients' 
 THEN CAST( sumValues AS DECIMAL(9,2)) 
 ELSE <something else which must also be decimal> --or no else
 END AS sumVal 
FROM client_summary

编辑:如果找不到通用类型,则必须使用两列。

SELECT title, 
    CASE WHEN title <> 'Total Clients' 
     THEN CAST( sumValues AS DECIMAL(9,2)) 
     END AS sumVal,
    sumValues as allSumValues
 FROM client_summary
于 2013-01-24T10:13:48.607 回答