Поиск имен пользователей с конкретными символами в их фамилии - PullRequest
0 голосов
/ 28 июля 2011

В Oracle SQL я хочу найти все имена пользователей, фамилия которых содержит некоторые конкретные символы, такие как ('Z', 'X', 'D', 'F'), или содержит несколько диапазонов символов из 'A- F».

Я пробовал это:

 SELECT user_last_name
    FROM   userbase
    WHERE  user_last_name LIKE '%A%' OR user_last_name LIKE '%F%' .

Так, как я могу пойти об этом.

И я написал вопрос на Facebook, хотя это не имеет к нему никакого отношения, потому что это пример, данный моим сэром.

ОБНОВЛЕНИЕ: Я пробовал приведенный выше код, он работает с таким количеством ИЛИ, но как определить некоторый диапазон для поиска, например, IN ('Z', 'X', 'D', ' F ') или IN (' A-F ')

Ответы [ 2 ]

6 голосов
/ 28 июля 2011

Если вы используете последнюю версию Oracle, вы сможете использовать регулярные выражения

SQL> ed
Wrote file afiedt.buf

  1   select first_name, last_name
  2     from employees
  3*   where regexp_like( last_name, 'Z|X|D|[A-F]' )
SQL> /

FIRST_NAME           LAST_NAME
-------------------- -------------------------
Ellen                Abel
Sundar               Ande
Mozhe                Atkinson
David                Austin
Hermann              Baer
Shelli               Baida
Amit                 Banda
Elizabeth            Bates
Sarah                Bell
David                Bernstein
Laura                Bissot
Harrison             Bloom
Alexis               Bull
Anthony              Cabrio
Gerald               Cambrault
Nanette              Cambrault
John                 Chen
Kelly                Chung
Karen                Colmenares
Curtis               Davies
Lex                  De Haan
Julia                Dellinger
Jennifer             Dilly
Louise               Doran
Bruce                Ernst
Alberto              Errazuriz
Britney              Everett
Daniel               Faviet
Pat                  Fay
Kevin                Feeney
Jean                 Fleaur
Tayler               Fox
Adam                 Fripp
Samuel               McCain
Allan                McEwen
Donald               OConnell
Eleni                Zlotkey

37 rows selected.

Если вы хотите, чтобы в поиске не учитывался регистр

SQL> ed
Wrote file afiedt.buf

  1   select first_name, last_name
  2     from employees
  3*   where regexp_like( last_name, 'Z|X|D|[A-F]', 'i' )
SQL> /

FIRST_NAME           LAST_NAME
-------------------- -------------------------
Ellen                Abel
Sundar               Ande
Mozhe                Atkinson
David                Austin
Hermann              Baer
Shelli               Baida
Amit                 Banda
Elizabeth            Bates
Sarah                Bell
David                Bernstein
Laura                Bissot
Harrison             Bloom
Alexis               Bull
Anthony              Cabrio
Gerald               Cambrault
Nanette              Cambrault
John                 Chen
Kelly                Chung
Karen                Colmenares
Curtis               Davies
Lex                  De Haan
<<snip>>
Matthew              Weiss
Jennifer             Whalen
Eleni                Zlotkey

93 rows selected.
0 голосов
/ 28 июля 2011

Вы можете использовать INSTR для проверки наличия символов в вашем поле, например:

SELECT
  user_last_name
FROM
  userbase
WHERE 0 < INSTR(user_last_name,'A')
   or 0 < INSTR(user_last_name,'B')
   ...repeat for each character you want to test for...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...