I have a column where most values are numeric but a few contain letters or special characters:
Records |
---|
90000 |
5200 |
unknown |
approximately 25 areas |
TBC |
5000 (approx) |
I would like to remove any non-numeric entries and replace them with null like this:
Records |
---|
90000 |
5200 |
NULL |
NULL |
NULL |
NULL |
I tried to remove non-numerical characters first, then change the data to numeric:
SELECT "Year" ,regexp_replace("Records",'[%A-Za-z%+$]',NULL) FROM records_table
However this resulted in changing all records to NULL, not just non-numeric ones.
Advertisement
Answer
You could try keeping the value when the field “Records” matches numbers only:
SELECT "Year", CASE WHEN "Records" REGEXP '[0-9]+' THEN "Records" END FROM records_table