2

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

谢谢

这是我尝试过的一个查询,但它不起作用:

SELECT parcel, year, due FROMdeliquent_property WHERE year IN ('2013', '2012', '2011', '2010') GROUP BY parcel HAVING due LIKE '%[0-9]%';

4

1 回答 1

8

这个查询可以解决问题:

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

于 2013-08-24T16:34:50.020 回答