Исключение значения из диапазона значений, определенных как «между» в запросе MySQL - PullRequest
1 голос
/ 23 февраля 2012

Мне интересно, возможно ли исключить значение из диапазона, определенного как «между».

Вот пример:

 ...
 WHEN left(name,2) between 'AA' and 'AZ' then 'HALLO'
 ...

Я хочу исключить из этого диапазона, например, значение «AM» Есть короткий способ получить это, или мне нужно разделить диапазон на два разных, как следует?

 ...
 WHEN left(name,2) between 'AA' and 'AL' then 'HALLO'
 WHEN left(name,2) between 'AN' and 'AZ' then 'HALLO'
 ...

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 23 февраля 2012

Сначала поместите ваш более строгий регистр:

CASE 
WHEN left(name,2) == 'AM' then 'wohoo'
WHEN left(name,2) between 'AA' and 'AZ' then 'HALLO'
END

Если он соответствует 'AM', то, поскольку этот регистр является первым в операторе, его действие будет выполнено, даже если второй регистр также соответствует 'AM».

2 голосов
/ 23 февраля 2012
WHEN left(name,2) between 'AA' and 'AZ' AND NOT left(name,2) = 'AM' then 'HALLO'
1 голос
/ 23 февраля 2012

Вы можете:

...
WHEN (left(name,2) between 'AA' and 'AZ') AND (left(name,2) <> 'AM') 
     then 'HALLO'
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...