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

Cha*_*unn 1 mysql null decimal char dollar-sign

我在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]%';

Fab*_*ion 7

这个查询可以解决这个问题:

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
Run Code Online (Sandbox Code Playgroud)

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