Есть ли SQL-условие, которое может искать не целые числа в столбце? - PullRequest
12 голосов
/ 26 апреля 2011

В основном, я хотел бы, чтобы оператор select работал следующим образом

SELECT *
FROM table  
WHERE column IS NOT INT  

Есть ли подобное условие или как вы проверяете не целые числа в столбце nvarchar (10)?

Ответы [ 2 ]

14 голосов
/ 26 апреля 2011

В 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
8 голосов
/ 26 апреля 2011

Вы также можете использовать

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*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...