SQL顺序顺序重复
我的sql上有order by zoneIdSQL顺序顺序重复,sql,sql-server,Sql,Sql Server,我的sql上有order by zoneId ZoneID | Description | 1 | something | 1 | something | 1 | something | 2 | something | 2 | something | 2 | something | 3
ZoneID | Description |
1 | something |
1 | something |
1 | something |
2 | something |
2 | something |
2 | something |
3 | something |
3 | something |
3 | something |
但我想这样点,这是可能的
ZoneID | Description |
1 | something |
2 | something |
3 | something |
1 | something |
2 | something |
3 | something |
1 | something |
2 | something |
3 | something |
在sql server中,您可以使用 rextester演示: 返回:
+--------+-------------+
| ZoneId | Description |
+--------+-------------+
| 1 | something |
| 2 | something |
| 3 | something |
| 1 | something |
| 2 | something |
| 3 | something |
| 1 | something |
| 2 | something |
| 3 | something |
+--------+-------------+
若要在没有top的情况下无法按顺序排序的视图中使用它,只需添加一列,列号为:
非常感谢,我可以在SQL视图上使用行号吗?我认为SQL视图不能执行行_number@tonydeleon更新了我的答案,包括如何在视图内使用行号和在视图外按顺序排列。非常感谢@SqlZim@tonydeleon很乐意帮忙!
+--------+-------------+
| ZoneId | Description |
+--------+-------------+
| 1 | something |
| 2 | something |
| 3 | something |
| 1 | something |
| 2 | something |
| 3 | something |
| 1 | something |
| 2 | something |
| 3 | something |
+--------+-------------+
create view dbo.with_rownumber as
select
ZoneId
, Description
, rn = row_number() over (partition by ZoneId order by (select 1))
from t;
go
select ZoneId, Description
from dbo.with_rownumber
order by rn, ZoneId