powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
9 сообщений из 9, страница 1 из 1
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965182
Lev5137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста с одним запросом.
Найти человека по указанным параметрам:
- телефон
- ФИО
- документ
Обязательное требование по запросу где поиск по параметрам. Надо учесть что параметры могут быть не указаны. То есть поиск человека только по фио. И это должно быть в 1 запрос как то.
Писал запрос, но он у меня не срабатывает так как мне надо. я так понял чтобы выводило либо со всеми параметрами, либо без каких то параметров, но при этом там не пустые поля должны быть, а просто считается, что при формировании условия человек не ввел данный параметр для поиска. Вот как в этой ситуации написать запрос.
Я писал запрос вот так, но он не выдает то что мне нужно, если я например сделаю какие то значения ' ':

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select pd.ID_PERSONAL_DATA, 
pd.P_NAME, 
pd.P_SURNAME, 
pd.PATRONYMIC, 
pd.PHONE_NUMBER, 
dc.DOCUMENT_NAME
FROM COURSEWORK.PERSONAL_DATA pd FULL OUTER JOIN COURSEWORK.DOCUMENTS d ON pd.id_personal_data=d.id_personal_data
FULL OUTER JOIN COURSEWORK.DOCUMENT_CATEGORY dc ON dc.id_document_category=d.id_document_category
where (pd.P_NAME='Анников' and pd.P_SURNAME='Евстигней' and pd.PATRONYMIC='Вадимович' and pd.PHONE_NUMBER = 89200571627 and dc.document_name='водительские права')
or (pd.P_NAME='Анников' and pd.P_SURNAME='Евстигней' and pd.PATRONYMIC='Вадимович' and pd.PHONE_NUMBER = 89200571627)
or (pd.P_NAME='Анников' and pd.P_SURNAME='Евстигней' and pd.PATRONYMIC='Вадимович' and dc.document_name='водительские права')
or (pd.P_NAME='Анников' and pd.P_SURNAME='Евстигней' and pd.PATRONYMIC='Вадимович');
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965187
alexzaides
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lev5137,

2 вопроса -
1.база какая?
2.Зачем там full join ?

Модератор: Тема перенесена из форума "Работа".
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965189
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lev5137
Я писал запрос вот так, но он не выдает то что мне нужно, если я например сделаю какие то значения ' '

Значит, его нужно изменить так, чтобы он выдавал то, что Вам нужно. Попробуйте написать похожий запрос, который ищет по ФИО и телефону (без документа) и посмотрите, чем он отличается от Вашего. А затем подумайте, что надо дописать к Вашему запросу, чтобы в случае неуказания документа он по сути превращался во второй Вами написанный.

P.S. Работать с номером телефона как с числом - плохая идея.
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965190
alexzaides
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lev5137,

select pd.ID_PERSONAL_DATA,
pd.P_NAME,
pd.P_SURNAME,
pd.PATRONYMIC,
pd.PHONE_NUMBER,
dc.DOCUMENT_NAME
FROM COURSEWORK.PERSONAL_DATA pd
JOIN COURSEWORK.DOCUMENTS d ON pd.id_personal_data=d.id_personal_data
JOIN COURSEWORK.DOCUMENT_CATEGORY dc ON dc.id_document_category=d.id_document_category
where (pd.P_NAME='Анников' and pd.P_SURNAME='Евстигней' and pd.PATRONYMIC='Вадимович') and
(pd.PHONE_NUMBER is null or pd.PHONE_NUMBER = 89200571627) and (dc.document_name is null or dc.document_name='водительские права')


не пойдёт?
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965191
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexzaides
не пойдёт?

Может и пойдёт. Но постановке задачи не соответствует.
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965192
Lev5137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexzaides,
база oracle.
по поводу join я просто хотел все в 1 запрос сделать и как машинально сделал через full join. я с join не очень хорошо понимаю в каком случае какой применять. ну full join это когда можно в обоих столбцах иметь пустые значения. вообщем как я понял ваши замечания, здесь надо просто через join сделать
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965193
Lev5137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexzaides,

я так пробовал писать, но как я понял там надо чтобы выводились строчки. причем они должны быть не пустые. у меня в БД нет пустых строчек. просто если я напишу приложение и например в качестве парамета dc.document_name задам пустую строку ' ' , то запрос ничего не выодит, а по идее должно выводиться больше строк, ведь меньше данных для поиска
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965243
alexzaides
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

ну постановка так сформулирована, что сложно сказать, что ей соответствует. Я просто переписал тот запрос что есть, чтобы он глаза поменьше резал
...
Рейтинг: 0 / 0
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
    #39965244
alexzaides
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lev5137,

ну шо я вам таки могу сказать... Учите матчасть. Оно полезно иногда.
Во первых в оракле пустая строка === NULL. и проверять надо на него, а не на пустую строку
Во вторых - с типами join таки стоит разобраться
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]