我有一个查询,它UNION
是两个有点相似的数据集,但它们都有一些不存在于另一个中的列(即,这些列在结果中具有 NULL 值UNION
。)
问题是,我需要ORDER
使用仅存在于一组或另一组中的那些列来生成结果数据,以便以友好的格式获取软件端的数据。
例如:Table1有字段ID, Cat, Price
。表 2有字段ID, Name, Abbrv
。该ID
字段在两个表之间是通用的。
我的查询看起来像这样:
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
我希望这可以在 T-SQL 中完成。