2

MySQl データベースでクエリを実行していて、ドル記号と数字 (つまり、1,345.89 ドル) を含むテキスト文字のフィールドがあります。NULL でないことを確認する必要があります (一部のテキスト フィールドは NULL です)。このテキスト フィールドを 10 進数値に変換して、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 に答える