Как я могу объединить два столбца в один оператор LIKE? - PullRequest
1 голос
/ 06 октября 2011

У меня есть фамилия и имя.

Мне нужно найти Смита или Смита Дж.

У меня есть это в моем предложении where:

lastname LIKE '%SMITH%' AND firstname LIKE '%J%'

Что я делаю не так? Как я могу объединить фамилию и имя для одного LIKE для этого? В данных есть кузнец j.

Спасибо за любую помощь.

Я использую Oracle 11g, если это имеет значение.

изменить: забыл включить кавычки. У меня было это. спасибо.

edit: Похоже, я делаю это правильно, поэтому должно быть что-то еще.

Ответы [ 5 ]

4 голосов
/ 06 октября 2011

Попробуйте:

UPPER(lastname) LIKE '%SMITH%' AND UPPER(firstname) LIKE '%J%'

Или, если вам действительно нужно это в одном утверждении:

UPPER(lastname||firstname) LIKE '%SMITH%J%'
1 голос
/ 06 октября 2011

Если я не понял ваш вопрос

lastname LIKE '%smith%'

само по себе вернет оба?

1 голос
/ 06 октября 2011

Вам нужны апострофы вокруг строк:

lastname LIKE '%smith%' AND firstname LIKE '%J%'
0 голосов
/ 06 октября 2011

как насчет

(
  (lastname LIKE '%SMITH%') AND
  ( (firstname LIKE '%J%') OR (firstname IS NULL) OR (firstname ='') )
)
0 голосов
/ 06 октября 2011

как насчет того, чтобы вместо использования like использовать регулярное выражение, совпадающее с обоими?

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