在SQL查询中转换定价存在问题:
CASE CAST(R.Price AS decimal(10,2))
WHEN 'NULL'
THEN '0'
END AS 'PricePoint',
不幸的是,它抛出了这个错误:
将数据类型varchar转换为数字时出错。
谢谢你的帮助。
发布于 2017-02-02 05:53:04
您正在将NULL与Varchar进行比较,因此它会产生错误。
使用以下查询
CASE CAST(R.Price AS decimal(10,2)) WHEN NULL THEN '0'END AS 'PricePoint',
发布于 2017-02-02 05:55:26
如果这是针对 Server的,那么您必须使用以下代码来使用IS NULL
检查(而不是“正常”的相等操作符):
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN '0'
END AS 'PricePoint',
另外:如果您想返回一个数值值0
,您应该再次忘记该值周围的单引号--将它放在单引号中是返回字符串值(而不是int
):
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN 0
END AS 'PricePoint',
更新:如果您希望返回任何非NULL
的正常价格,则向CASE
添加一个ELSE
子句
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN 0
ELSE CAST(R.Price AS decimal(10, 2))
END AS 'PricePoint',
https://stackoverflow.com/questions/41994929
复制相似问题