微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在sql中加入时保持顺序

表1和表2的主键(key1,key2)是相同的.表3是用户定义的表,其中一个列field5对于table2是通用的.我需要从表1和表2中选择行,其中table2中的field5在table3中.我需要以与table3相同的顺序获取行.

表格1

key1 key2 field1 field2

表2

key1 key2 field3 field4 field5

用户定义的表

字段5

我正在考虑的问题是

select a.key1,a.key2,a.field1,a.field2,b.field3,b.field4
from table1 as a INNER JOIN table2 as b ON a.key1 = b.key1 AND a.key2 = b.key2
where b.field5 in (select field5 from table3)

这不会给我行与表3中相同的顺序.

我需要这样的东西来维持秩序吗?

select a.key1,d.field3,d.field4 from
table1 as a INNER JOIN
 (select b.key1,b.key2,b.field4
  from table2 as b INNER JOIN table3 as c
  ON b.field5 = c.field5) as d
WHERE a.key1 = d.key1 AND a.key2 = d.key2

解决方法

订单仅在使用order by子句时在最终结果中提供.

如果你想“按照与table3相同的顺序”,你必须编写一个正确的order by子句来重新创建table3中的顺序.

如果连接速度更快,则可以自由地对行进行加扰.

原文地址:https://www.jb51.cc/mssql/75309.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐