|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Помогите пожалуйста с одним запросом. Найти человека по указанным параметрам: - телефон - ФИО - документ Обязательное требование по запросу где поиск по параметрам. Надо учесть что параметры могут быть не указаны. То есть поиск человека только по фио. И это должно быть в 1 запрос как то. Писал запрос, но он у меня не срабатывает так как мне надо. я так понял чтобы выводило либо со всеми параметрами, либо без каких то параметров, но при этом там не пустые поля должны быть, а просто считается, что при формировании условия человек не ввел данный параметр для поиска. Вот как в этой ситуации написать запрос. Я писал запрос вот так, но он не выдает то что мне нужно, если я например оставлю пустые значения ' ': Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 23:34 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Если ФИО есть всегда, зачем FULL OUTER ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 01:22 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Lev5137, может быть, что-то в таком духе? Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 09:04 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Lev5137, Ну вот, спалил телефон Анникова Е.В. всему форуму. PHONE_NUMBER, document_name сделать nvl(x, ''), входной параметр тоже и оставить первый вариант: Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2020, 09:30 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
exciter, я думаю пойдет. Спасибо вам большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 05:43 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
crutchmaster, я даже чесно говоря не знал что можно в в обычном sql запросе так сделать. думал что это возможно только в pl/sql. спасибо вам огромное за запрос и за получение новых знаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 05:46 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
crutchmaster, Я посмотрел все работает спасибо вам большое. Выручили. А то я голову ломал как его можно написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:01 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Lev5137, Воу, даже работает:) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:07 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
exciter, Я посмотрел все работает спасибо вам большое. Выручили. А то я голову ломал как его можно написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:35 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
crutchmaster, нет я перепутал. почему то вам отправилось. я переделал ваш запрос по аналогии с тем который написали выше и он у меня заработал. 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= :name and pd.P_SURNAME= :surname and pd.PATRONYMIC= :partonymic and pd.PHONE_NUMBER = nvl(:phone,pd.PHONE_NUMBER) and dc.document_name = nvl(:docname, dc.document_name); ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:37 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Lev5137, Я не уверен, null = null сработает, поэтому сделал именно замену на пустую строку. Она точно сработает через '='. Параметр тоже должен быть не null. В принципе можно делать nvl(:param, '') ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:54 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Lev5137, И PHONE_NUMBER должен быть varchar по идее из-за всяких там +7. Если он number, то надо nvl(pd.phone_number, 0) = nvl(:phone, 0), потому что null не сравнится. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 06:58 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
crutchmaster Lev5137, Я не уверен, null = null сработает, поэтому сделал именно замену на пустую строку. Она точно сработает через '='. Параметр тоже должен быть не null. В принципе можно делать nvl(:param, '') Вы уверены, что пустая строка "сработает"? Какой результат у вас возвращает этот запрос? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 08:46 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
exciter, 0. Ха. А говорят, что яваскрипт наркомовский. Надо прочерк какой-то значит. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 09:02 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
crutchmaster А говорят, что яваскрипт наркомовский. А еще говорят, что прежде чем садиться за управление сложным агрегатом и тем более обучать коллег - следует хотя бы ознакомиться с инструкцией. В частности - в списке отклонений oracle rdbms от стандарта ANSI есть и отождествление пустой строки с null. Ну и для общего расширения кругозора: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 13:38 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
andrey_anonymous, Ладно, ладно. Я лоханулся. Подколоть уже нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 04:14 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
"Подколоть" и "лоханулся" не должны встречаться в одном предложении ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 08:13 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, лоханулся подкалывая ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 09:37 |
|
Запрос в oracle SQL для поиска по указанным параметрам и не по всем заданным параметрам
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Ну а чо? Некоторые вон носятся с методичкой, где у них undefined != null, null != false, '' == false и 0 == false. Правда я так же всегда отвечаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 09:49 |
|
|
start [/forum/search_topic.php?author=raul84&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 633ms |
total: | 882ms |
0 / 0 |