Есть ли условие sql, которое может искать нецелые числа в столбце?
В принципе, мне бы хотелось, чтобы оператор select функционировал следующим образом
SELECT *
FROM table
WHERE column IS NOT INT
Есть ли такое условие, как это или как вы проверяете нецелые числа в столбце nvarchar (10)?
Ответ 1
В SQL Server вы можете сделать:
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
Ответ 2
Вы также можете использовать
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*/