Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как обработать условие?  [new]
laifik
Member

Откуда:
Сообщений: 190
Есть основная таблица TAB1 и второстепенная TAB2.
У TAB1 поля: kod, Name, Prim. У TAB2 два поля повторяются: kod, Name. В TAB2 значений поля kod значительно больше, чем в TAB1.
Если написать запрос:
автор
SELECT
A.kod, B.Name, A.Prim
FROM TAB1 A
INNER JOIN TAB2 B
ON A.kod = B.kod

то в результате отобразятся только те строки TAB1, код которых будет найден в TAB2.
Но мне так не нужно. Задача состоит в том, чтобы работало условие: если kod TAB1 будет найден в TAB2,
то в SELECT отобразится B.Name. Если код не найден, то в SELECT должно остаться поле A.Name, т.е. имя из первой таблицы.
Я знаю, как это условие задать с помощью двух SELECTов. Но этот вариант мне не подходит.
Можно ли эту проблему решить одним SELECTом? Если знаете, подскажите примерчик...
21 ноя 15, 19:49    [18452944]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать условие?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
SELECT
  A.kod, isnull (B.Name, A.Name), A.Prim
FROM TAB1 A
left  JOIN TAB2 B
ON A.kod = B.kod
21 ноя 15, 20:24    [18453037]     Ответить | Цитировать Сообщить модератору
 Re: Как обработать условие?  [new]
laifik
Member

Откуда:
Сообщений: 190
Как просто! А я нагородила...
Спасибо огромное!!!
21 ноя 15, 22:25    [18453419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить