我在 MySQl 数据库上运行查询,我有一个文本字符字段,其中包含带有美元符号和数字的美元金额(即 $1,345.89)我需要检查是否为 NULL(某些文本字段为 NULL)并且该值大于 0。如何将此文本字段转换为十进制值,以便验证它是否大于 0。我不想更改数据库中的原始文本。
谢谢
这是我试过但不起作用的查询:
SELECT 包裹,年份,截止日期
FROM
deliquent_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/