2014-11-22 2 views
0

У меня есть столбец, который имеет номера, как этотсравнения строк и включая нуль

p123 
p139 
d291 
c9384 
p393 
null 
null 
c148 

Я хочу, чтобы сравнить эту колонку, в которой он говорит, что она включает в себя только р и нулевые значения. Мой код:

WHERE (COLUMN NOT LIKE 'C%' AND COLUMN NOT LIKE 'D%' OR COLUMN IS NULL) 

КОГДА У меня есть условие COLUMN NOT LIKE «C%» И КОЛОНКА НЕ НРАВИТСЯ D% он возвращается с вне нуля, но когда я добавляю это нулевое значение, он возвращается с один столбец переменного тока, несмотря на то, что есть сравнение, чтобы не включать те, в которых c. Я не знаю, как правильно получить заказ или какую скобку использовать.

+0

Вы говорите, что 'включает только p', но вы НЕ НРАВИТСЯ 'C%' И КОЛОНКА, НЕ НРАВИТСЯ D%'. Что правильно? Так что, если бы была другая запись 'A123', она должна быть включена или нет? –

+0

Да. Там может быть такой случай, и он будет включен. Мы просто знаем, что нам не нужны c и d, но мы не хотим исключать null. –

+0

Это должно работать (после того, как вы исправите «D%»). Пожалуйста, покажите тестовый пример на странице http://sqlfiddle.com/#!6. – philipxy

ответ

0

Вы можете использовать подстановочные:

where [column] not like '[cd]%' or [column] is null 

это исключала бы все строки, начинающиеся с либо c, либо d. В вашем примере будут возвращены три строки, начинающиеся с p, и две строки с null.

0

Оно должно быть:

WHERE COLUMN LIKE 'P%' OR COLUMN IS NULL 

Что касается вашего комментария к моему ответу, если то, что вы хотите, все значения, которые не соответствуют «D» или «C» в первом символе, то ГДЕ условно это:

WHERE (COLUMN NOT LIKE 'C%' AND COLUMN NOT LIKE 'D%') OR COLUMN IS NULL 
+0

Что делать, если были другие строки, которые имели другие начальные буквы, чем p, и вы тоже хотели их? Почему он все еще включает значение c, если вы говорите не нравится. –

+0

@epv Я не понимаю, что вы говорите. Я построил это где clausule в соответствии с этим: «он включает только p и нулевые значения». Вы хотите также собрать значения, начинающиеся с буквы «c»? – Verhaeren

Смежные вопросы