moh*_*rim 0 sql sql-server stored-procedures
我有一个存储过程(称为sp1),它正在两个表之间进行联接。
表的架构如下:
Table1 (id, country, name, ccy)
Table2 (sId, price)
Run Code Online (Sandbox Code Playgroud)
这是存储过程:
SELECT
RTRIM(id) as id,
country
FROM
dbo.Table1
LEFT OUTER JOIN
dbo.Table2 ON Table1.Id = Table2.sId
Run Code Online (Sandbox Code Playgroud)
在一个数据库上,我得到以下结果
MNKD US UnitedStates
928502811 UnitedStates
Run Code Online (Sandbox Code Playgroud)
但在另一个数据库上,我得到了不同顺序的结果:
928502811 UnitedStates
MNKD US UnitedStates
Run Code Online (Sandbox Code Playgroud)
唯一显着的区别是表 1 由许多列组成,而表 2 只有两列。
有人可以帮助我找出原因以及如何修复它以获得一致的结果吗?谢谢
默认情况下,SQL 表和结果集是无序的。唯一的例外是当查询显式具有order by. 如果没有order by,同一数据库上相同数据的同一查询在多次调用时可能会以不同的顺序返回值。
如果您希望结果按特定顺序排列,请添加order by:
select trim(id) as id, country
from dbo.Table1 left outer join
dbo.Table2
on Table1.Id = Table2.sId
order by id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |