基本上我想要一个像这样的
的select语句SELECT *
FROM table
WHERE column IS NOT INT
是否存在这样的情况或如何在nvarchar(10)列中检查非整数?
答案 0 :(得分: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
答案 1 :(得分:8)
您也可以使用
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*/