加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

TSQL ORDER-BY与UNION的不同数据集

发布时间:2020-12-12 16:43:14 所属栏目:MsSql教程 来源:网络整理
导读:我有一个查询,UNION有两个有点类似的数据集,但是它们都有一些不存在于另一个列中的列,即列中在所生成的UNION中具有NULL值. UNION的目的是以软件方面的友好格式获取数据. 问题是,我需要使用只存在于一个或另一个集合中的那些列ORDER生成的数据. 例如:Table1具
我有一个查询,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
联盟
SELECT t2.ID,NULL as Cat,NULL as Price,t2.Name,t2.Abbrv FROM t2
ORDER BY价格DESC,Abbrv ASC

ORDER BY是我被卡住的地方.数据如下所示:

100 —球—– 1.53 ———————-
200 — —气泡1.24 ———————-
100 ——————— RedBall —- 101RB–
100 ———————蓝色圆球— 102BB–
200 ——————— RedWand —- 201RW–
200 ——————— BlueWand — 202BW–

但我希望它看起来像这样:

100 —球—– 1.53 ———————-
100 ——————— RedBall —- 101RB–
100 ———————蓝色圆球— 102BB–
200 — —气泡1.24 ———————-
200 ——————— RedWand —- 201RW–
200 ——————— BlueWand — 202BW–

(如果那些很难阅读,道歉 – 不知道怎么样显示一张桌子)

记住这是一个非常倾倒的例子,谚语“使用加入!”答案是不适用的(即我已经知道如何加入他们,但这不是我想要的最终结果).

很可能,实现这一目标的唯一方法是在从数据层返回时操纵软件中的数据 – 如果是这样的话.但我希望可以在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列.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读