SELECT * FROM col WHERE name! = 'NULL' && name (is int) - ПРОБЛЕМА SQL - PullRequest
1 голос
/ 14 июня 2011

У меня есть SQL-оператор, который мне нужно изменить, поэтому он возвращает только те значения, которые являются целыми числами.

SELECT * FROM col WHERE name != 'NULL' <- это работает </p>

Но теперь мне нужно расширитьчто-то вроде:

SELECT * FROM col WHERE name != 'NULL' && name (является целым)

Но я не могу понять, sql для этого.У кого-нибудь есть какие-либо идеи?

Большое спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 14 июня 2011

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

Кроме того, при сравнении с NULL в SQL вы должны использовать IS NULLили IS NOT NULL

2 голосов
/ 14 июня 2011

Для сервера SQL это синтаксис:

SELECT * FROM col WHERE NOT name IS NULL AND ISNUMERIC(name) = 1 AND NOT name LIKE '%.%'

Предполагается, что "."используется для десятичных знаков

0 голосов
/ 14 июня 2011

Если вы используете MSSQL, SELECT * FROM col WHERE name <> 'NULL' AND IsNumeric(name) = 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...