web-dev-qa-db-ja.com

列内の非整数を検索できるSQL条件はありますか?

基本的に、このように機能するselectステートメントが必要です

SELECT *
FROM table  
WHERE column IS NOT INT  

このような条件はありますか、またはnvarchar(10)列で非整数をどのようにチェックしますか?

16
Niklas

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
14
Quassnoi

あなたも使うことができます

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*/
11
Martin Smith