开发者社区> 问答> 正文

用于提供数字的文本的CASE逻辑导致转换数据类型错误

这段代码在SQL Server查询中不起作用,有没有解决的办法?

CASE WHEN table1.Code = 'Food' THEN table1.Amount Else NULL END as "Fee"

我收到此错误:

消息8114,级别16,状态5,第1行将数据类型varchar转换为数值时出错。

我假设它是因为我正在搜索文本字段,然后在同一张表中获取一个数字字段,但这似乎很简单。不确定是什么问题。

展开
收起
祖安文状元 2020-01-04 15:17:46 781 0
1 条回答
写回答
取消 提交回答
  • SELECT try_cast(Amount AS FLOAT) Fee
    FROM table1
    WHERE try_cast(Amount AS FLOAT) IS NULL;
    
    

    您可以try_cast用来检查哪些行失败。

    2020-01-04 15:17:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载