У меня есть запрос, что UNIONs два несколько похожих набора данных, но оба они имеют некоторые столбцы, которые не присутствуют в другом - то есть столбцы имеют значения NULL в результате UNION. Целью UNION является получение данных в дружественном формате для программного обеспечения.
Проблема в том, что мне нужно ЗАКАЗАТЬ полученные данные, используя те столбцы, которые существуют только в одном или другом наборе.
Например: Таблица 1 имеет поля ID, Cat, Price. Таблица 2 имеет идентификаторы полей (такие же, как в таблице 1), Name, Abbrv.
Мой запрос выглядит примерно так:
SELECT t1.ID, t1.Cat, t1.Price, NULL as Name, NULL as Abbrv FROM t1
UNION
SELECT t2.ID, NULL as Cat, NULL as Price, t2.Name, t2.Abbrv FROM t2
ORDER BY Price DESC, Abbrv ASC
ORDER BY - это место, где я застрял. Данные выглядят следующим образом:
100---Balls-----1.53----------------------
200---Bubbles---1.24----------------------
100---------------------RedBall----101RB--
100---------------------BlueBall---102BB--
200---------------------RedWand----201RW--
200---------------------BlueWand---202BW--
Но я хочу, чтобы это выглядело так:
100---Balls-----1.53----------------------
100---------------------RedBall----101RB--
100---------------------BlueBall---102BB--
200---Bubbles---1.24----------------------
200---------------------RedWand----201RW--
200---------------------BlueWand---202BW--
(извинения, если их трудно читать - не знали, как еще показать таблицу)
Имейте в виду, что это очень глупый пример, а пресловутый "использует JOIN!". ответ не применим (т.е. я уже знаю, как присоединяться к ним, но это не то, что я хочу в конечном результате).
Вполне возможно, что единственный способ достичь этого - манипулировать данными в программном обеспечении, когда он возвращается с уровня данных - если это так, то и так. Но я надеюсь, что это можно сделать в TSQL.