Как я могу отфильтровать строки, которые содержат определенный столбец с нулевыми или пустыми данными в SQL? - PullRequest
6 голосов
/ 28 ноября 2008

В SQL, Как мы делаем проверку, чтобы отфильтровать все строки, которые содержат данные столбца, нулевые или пустые?
Для экзамена

Select Name,Age from MEMBERS

Нам нужен чек Имя не должно быть равно нулю или пусто.

Ответы [ 6 ]

11 голосов
/ 28 ноября 2008

Это будет работать во всех здравомыслящих базах данных ( wink, wink ) и вернет строки, для которых имя не является ни пустым, ни пустым

select name,age from members where name is not null and name <> ''
4 голосов
/ 28 ноября 2008

Для СУБД, которые обрабатывают '' как значение (не ноль), запрос Винко работает:

select name,age from members where name is not null and name <> ''

Для Oracle, который обрабатывает '' как ноль, выше не работает, но это работает:

select name,age from members where name is not null

Я пытался придумать решение, не зависящее от СУБД, но не получилось - в основном из-за разных операторов / функций конкатенации, используемых разными СУБД!

1 голос
/ 28 ноября 2008

Выберите Name, Age из MEMBERS, где name равно нулю или name = ''

Вы можете найти и узнать больше от http://www.w3schools.com/sql/default.asp

0 голосов
/ 28 ноября 2008

T-SQL

select name,age from members where COALESCE(name, '') <> ''
0 голосов
/ 28 ноября 2008

В зависимости от используемой базы данных; пытаться Выберите имя, возраст из членов где имя НЕ НУЛЬ

если вам нужно отфильтровать Выберите имя, возраст из членов где имя NULL

В некоторых СУБД обработка строки enpty отличается от нуля, и вам нужно будет добавить; Выберите имя, возраст из членов где имя не пусто ИЛИ Имя <> ''

0 голосов
/ 28 ноября 2008

nvl (Name, 'некоторая немая строка'), это вернет Name, если Name не равно null и отличается от '' (оракул, не знаю для других). Он будет равен 'некоторой немой строке', если равен нулю или равен ''.

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