Oracle SQL - Как добавить фильтр в поле, которое я создал? - PullRequest
0 голосов
/ 11 марта 2019

Я относительно новичок в Oracle SQL и столкнулся с проблемой, при которой я пытаюсь отфильтровать отчет так, чтобы он возвращал только записи, зарегистрированные по определенному списку имен пользователей.

В настоящее время они хранятся в системе в полях user.first_name и user.surname, и я создал следующее поле CAST в коде, чтобы объединить их вместе:

CAST(USER.FIRST_NAME||' '||USER.SURNAME as VARCHAR (25)) as CUSTOMER

Что я хочу сделать сейчас, так это ограничить его, чтобы мой запрос возвращал только те записи, где клиент находится в заранее определенном списке, который я могу встроить в SQL. например, я хочу видеть записи только для: Джо Блоггс, Джон Доу, Еще один

Как мне это сделать в Oracle SQL?

Спасибо

1 Ответ

0 голосов
/ 11 марта 2019

Один из вариантов (как вы сказали, что жестко закодировал его) -

select *
from your_table
where customer in ('Joe Bloggs', 'John Doe', 'A Nother');

Лучше хранить этих клиентов в отдельной таблице и объединить ее с your_table:

insert into separate_table (name) values ('Joe Bloggs'); -- do the same for the rest

select *
from your_table y join separate_table s on s.name = y.first_name ||' '||i.surname;

Еще лучше, использовать их удостоверения личности (потому что может быть два человека из Джона Доу; кого вы возьмете)?

insert into separate_table (id) values (1123); -- this is Joe Bloggs

select *
from your_table y join separate_table s on s.id = y.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...