mysql - SQL 查询 - 如何将包含美元符号的文本字段仅转换为十进制(去掉美元符号)

标签 mysql null char decimal dollar-sign

我在 MySQl 数据库上运行查询,我有一个文本字符字段,其中包含带有美元符号和数字的美元金额(即 $1,345.89)我需要检查是否为 NULL(某些文本字段为 NULL)并且该值大于 0。如何将此文本字段转换为十进制值,以便验证它是否大于 0。我不想更改数据库中的原始文本。

谢谢

这是我试过但不起作用的查询:

SELECT 包裹,年份,截止日期 FROMdeliquent_property WHERE 年份 ('2013', '2012', '2011', '2010') 按包裹分组 HAVING due LIKE '%[0-9]%';

最佳答案

这个查询可以解决问题:

SELECT ID, 
       CAST(REPLACE(REPLACE(IFNULL(Amount,0),',',''),'$','') AS DECIMAL(10,2)) 
FROM Table1
WHERE CAST(REPLACE(REPLACE(IFNULL(Amount,0),',',''),'$','') AS DECIMAL(10,2)) > 0

参见 SQLFIDDLE:http://www.sqlfiddle.com/#!2/55f433/1/0

关于mysql - SQL 查询 - 如何将包含美元符号的文本字段仅转换为十进制(去掉美元符号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420528/

相关文章:

mysql - API 从 MySQL DB 删除行的调用不起作用

mysql - 复杂的 MySQL JOIN SELECT

MySQL 按日期分组 DATE_FORMAT() 函数

c++ - 显示字符名称 C++ 的标准解决方案?

c++ - 从 C++ 文件中读取的奇怪数组

mysql - 清点日常元素

android - 如果未调用 setcontentview(),为什么 findViewById() 返回 null?

JQuery DataTables - AJAX 重新加载如何在没有返回任何内容时捕获

c# - 尽管有 ReSharper [NotNull] 注释,我是否应该添加显式空检查?

将 char 转换为 char 数组或将 char 数组转换为 char?