是否有一个sql条件可以在列中查找非整数?

Nik*_*las 16 sql sql-server conditional-statements

基本上我想要一个像这样运行的select语句

SELECT *
FROM table  
WHERE column IS NOT INT  
Run Code Online (Sandbox Code Playgroud)

是否有这样的条件或如何检查nvarchar(10)列中的非整数?

Qua*_*noi 14

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
Run Code Online (Sandbox Code Playgroud)


Mar*_*ith 11

你也可以用

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*/
Run Code Online (Sandbox Code Playgroud)