Если несколько записей в столбце заполнены разными значениями, используйте значение из другого столбца

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

Моя таблица:

Если несколько записей в столбце заполнены разными значениями, используйте значение из другого столбца

Мой результат должен выглядеть так:

Если несколько записей в столбце заполнены разными значениями, используйте значение из другого столбца

Мой вывод должен быть основан на следующих условиях:

  1. Если для одного и того же NID заполнено несколько записей с разными значениями (кроме null) в столбце «val», используйте Val, где Typ = T.
  2. Для того же NID, если для Typ «T» задано нулевое значение, то получите «Val», где Typ = O
  3. Для того же NID, если для Typ «O» задано нулевое значение, получите «Val», где Typ = T

Лучше представить ваши таблицы в виде форматированного текста.

Tony 18.12.2018 21:26

А что пробовали ???

Eric 18.12.2018 21:26

@ Эрик, что ты имеешь в виду ????

user28455 18.12.2018 21:36

@ user28455 Какая часть моего вопроса непонятна ??? Где твой запрос ???

Eric 18.12.2018 22:57
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
5
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю, что это то, что вы ищете. Сообщите мне, делает ли он то, что вы ищете, или нет.

SELECT TT.NID
    , COALESCE(TT.Val, OO.Val) AS Val
FROM 
(
    SELECT T.NID
        , T.Val
    FROM [SomeTable] T
    WHERE T.Typ = 'T'
) TT
LEFT JOIN 
(
    SELECT O.NID
        , O.Val
    FROM [SomeTable] O
    WHERE O.Typ = 'O'
) OO
    ON TT.NID = OO.NID

Другие вопросы по теме