首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询-将数据类型varchar转换为数字

SQL查询-将数据类型varchar转换为数字
EN

Stack Overflow用户
提问于 2017-02-02 05:39:25
回答 2查看 408关注 0票数 0

在SQL查询中转换定价存在问题:

代码语言:javascript
运行
复制
CASE CAST(R.Price AS decimal(10,2)) 
   WHEN 'NULL' 
      THEN '0'
END AS 'PricePoint',

不幸的是,它抛出了这个错误:

将数据类型varchar转换为数字时出错。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-02-02 05:53:04

您正在将NULL与Varchar进行比较,因此它会产生错误。

使用以下查询

代码语言:javascript
运行
复制
CASE CAST(R.Price AS decimal(10,2)) WHEN NULL THEN '0'END AS 'PricePoint',
票数 0
EN

Stack Overflow用户

发布于 2017-02-02 05:55:26

如果这是针对 Server的,那么您必须使用以下代码来使用IS NULL检查(而不是“正常”的相等操作符):

代码语言:javascript
运行
复制
CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN '0'
END AS 'PricePoint',

另外:如果您想返回一个数值0,您应该再次忘记该值周围的单引号--将它放在单引号中是返回字符串值(而不是int):

代码语言:javascript
运行
复制
CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN 0
END AS 'PricePoint',

更新:如果您希望返回任何非NULL的正常价格,则向CASE添加一个ELSE子句

代码语言:javascript
运行
复制
CASE 
   WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
      THEN 0
      ELSE CAST(R.Price AS decimal(10, 2)) 
END AS 'PricePoint',
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41994929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档