TSQL ORDER-BY与UNION的不同数据集
我有一个查询,UNION有两个有点类似的数据集,但是它们都有一些不存在于另一个列中的列,即列中在所生成的UNION中具有NULL值. UNION的目的是以软件方面的友好格式获取数据.
问题是,我需要使用只存在于一个或另一个集合中的那些列ORDER生成的数据. 例如:Table1具有字段ID,Cat,Price.表2具有字段ID(与表1相同),Name,Abbrv. 我的查询看起来像这样: SELECT t1.ID,t1.Cat,t1.Price,NULL as Name,NULL as Abbrv FROM t1 ORDER BY是我被卡住的地方.数据如下所示: 100 —球—– 1.53 ———————- 但我希望它看起来像这样: 100 —球—– 1.53 ———————- (如果那些很难阅读,道歉 – 不知道怎么样显示一张桌子) 记住这是一个非常倾倒的例子,谚语“使用加入!”答案是不适用的(即我已经知道如何加入他们,但这不是我想要的最终结果). 很可能,实现这一目标的唯一方法是在从数据层返回时操纵软件中的数据 – 如果是这样的话.但我希望可以在TSQL中完成. 解决方法Select ID,Price,Abbrv From (SELECT t1.ID,t1.Price AS SortPrice,NULL as Abbrv FROM t1 UNION SELECT t2.ID,t1.Price as SortPrice,t2.Abbrv FROM t2 inner join t1 on t2.id = t1.id ) t3 ORDER BY SortPrice DESC,Abbrv ASC 不知怎的,你必须知道表2中的数据链接到表1并分享价格.由于abbrv中的Null将先到,所以不需要创建一个SortAbbrv列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |