У меня есть домашнее задание в SQL для Oracle 10g, где мне нужно применить объединение к двум различным операторам выбора, чтобы вернуть два столбца. Мне нужны значения каждой ячейки в vendor_state, чтобы указать CA, и любое другое значение в другом состоянии, чтобы вернуть «Outside CA», чтобы указать, что они находятся в другом месте.
Я применил объединение и создал два столбца и списки для CA, но были перечислены многие другие идентификаторы состояния, и я не мог найти объяснения, как изменить фактические значения в самом запросе. В конце концов я наткнулся на ответ, но не могу объяснить, почему это работает. Код выглядит следующим образом:
SELECT vendor_name,
vendor_state
FROM vendors
WHERE vendor_state IN 'CA'
UNION
SELECT vendor_name,
'Outside CA' AS vendor_state
FROM vendors
WHERE vendor_state NOT IN 'CA'
ORDER BY vendor_name
Это дает мне точный ответ, который мне нужен, но я не знаю, почему псевдонимы во втором операторе select могут вести себя таким образом ... в моем учебнике не дается никаких объяснений, и ничто из того, что я прочитал, указывает на то, что псевдонимы столбцов могут быть сделано вот так. Но, переключив имя столбца и значение псевдонима, я заменил возвращаемое значение, а не само имя столбца ... Я не жалуюсь на результат, но было бы полезно, если бы я знал, как я это сделал.