问题描述
|
我有一个现在需要更改的sql语句,因此它只返回返回整数的值。
SELECT * FROM col WHERE name != \'NULL\'
<-这有效
但是现在我需要将其扩展为:
SELECT * FROM col WHERE name != \'NULL\' && name
(是一个整数)
但是我不能为此找出sql。有人有什么想法吗?
非常感谢高级。
解决方法
SQL:
SELECT * FROM col WHERE NOT name IS NOT NULL AND name NOT LIKE \'%[^0-9]%\'
要么
SELECT * FROM col WHERE NOT name IS NOT NULL AND ISNUMERIC(name) = 1
警告,ISNUMERIC可能为某些非数字字符(例如+,-或$)返回1
以下是有关ISNUMERIC的更多信息
另外,在SQL中与NULL比较时,必须使用IS NULL
或IS NOT NULL
, 对于SQL Server,这是语法:
SELECT * FROM col WHERE NOT name IS NULL AND ISNUMERIC(name) = 1 AND NOT name LIKE \'%.%\'
假设\“。\”用于小数
, 如果您使用MSSQL,
SELECT * FROM col WHERE name <> \'NULL\' AND IsNumeric(name) = 1