基本上我想一个select语句,将功能类似这样是否有sql条件可以在列中查找非整数?
SELECT *
FROM table
WHERE column IS NOT INT
有没有这样的条件或者你如何在一个nvarchar(10)列检查非整数?
基本上我想一个select语句,将功能类似这样是否有sql条件可以在列中查找非整数?
SELECT *
FROM table
WHERE column IS NOT INT
有没有这样的条件或者你如何在一个nvarchar(10)列检查非整数?
在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
你也可以使用
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*/
需要排除零长度的字段我也认为 – 2011-04-26 11:26:22
很难在这里选择正确的答案。你的将在我的具体情况下工作,但Quassnoi覆盖更广泛的范围=/ – Niklas 2011-04-26 11:34:39
我会去为Quassnoi的,因为它更一般。扩展LIKE来涵盖所有情况可能会使它变得更加复杂! – 2011-04-26 11:35:41
我删除了我的答案,因为它是错误的... – 2011-04-26 11:16:02
=(但至少你得分了+30 =) – Niklas 2011-04-26 11:17:17
“42.0”是否被认为是一个整数? – Quassnoi 2011-04-26 11:17:42