powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / where T1.SomeId = T2.SomeId, когда SomeId is null
2 сообщений из 2, страница 1 из 1
where T1.SomeId = T2.SomeId, когда SomeId is null
    #32079416
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы T1 и T2. В первой таблице (помимо прочих) есть поле SomeId, во второй - {SomeId, SomeValue}. Надо написать аналог следующего запроса
Код: plaintext
1.
2.
select T1.*, T2.SomeValue
from T1, T2
where T1.SomeId = T2.SomeId

для случая когда в таблице T1 поле SomeId может быть NULL (В таблице T2, SomeId никогда не равен NULL), потому что если выполнить этот запрос, то будет выданы только записи с непустыми SomeId, а хочется получить все записи, причем если SomeId is null, то и SomeValue должна быть null.
Есть идея добавить в таблицу T2 специальную запись
{SomeId, SomeValue} = {-1, "Неизвестное значение"},
тогда запрос примет вид
Код: plaintext
1.
2.
select T1.*, T2.SomeValue
from T1, T2
where T1.SomeId = NVL(T2.SomeId, - 1 )

Но это не красиво, так как пользователю при просмотре таблицы T2 постоянно будет мозолить глаза эта лишняя запись {"Неизвестное значение"}, а эта таблица показывается ему каждый раз когда надо выбрать SomeValue, будет крайне неприятно, если он случайно выберет "Неизвестное значение".
Как сделать по человечески?
...
Рейтинг: 0 / 0
where T1.SomeId = T2.SomeId, когда SomeId is null
    #32079436
Самсусам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Ответ я нашел на этом же форуме\r
\r
/topic/16778\r
\r
надо писать where T1.SomeId = T2.SomeId (+)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / where T1.SomeId = T2.SomeId, когда SomeId is null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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