当我尝试将 varchar 字段转换为十进制时,我在排除一列或多列时遇到了一些问题。我的语句如下:
SELECT title, CAST(sumValues AS DECIMAL(9,2)
WHERE title != 'Total Clients') AS sumVal
FROM client_summary
我想将该sumValues
字段转换为小数,但标题为“总客户”的列除外(计算人数时没有小数)。这怎么可能是我合适的陈述?
您可以试试这个:注意,语句的所有部分都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