Basically I would like a select statement that would function like this
SELECT * FROM table WHERE column IS NOT INT
Is there a condition like this or how do you check for non-integers in an nvarchar(10) column?
This is the way: SELECT * FROM TABLE_NAME WHERE NOT REGEXP_LIKE(COLUMN_NAME, '^-?[0-9.]+$ '); This also excludes values which contain decimals.
Syntax to check if the value is an integer. select yourColumnName from yourTableName where yourColumnName REGEXP '^-?[0-9]+$'; The query wherein we have used regular expression. This will output only the integer value.
In SQL Server
you can do:
SELECT * FROM mytable WHERE CASE WHEN IsNumeric(mycolumn) = 1 THEN CASE WHEN CAST(mycolumn AS FLOAT) <> CAST(CAST(mycolumn AS FLOAT) AS INT) THEN 1 END ELSE 1 END = 1
You could also use
SELECT * FROM T WHERE C = '' OR C LIKE '%[^0-9-]%' /*Contains a char other than - or 0-9*/ OR C LIKE '_%-%' /*Contains the - char other than 1st position*/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With