簡體   English   中英

當多行的 x 和 y 相同時,SQL 使用 ROW_NUMBER() OVER PARTITION BY x ORDER BY y

[英]SQL using ROW_NUMBER() OVER PARTITION BY x ORDER BY y when x and y are the same for multiple rows

這是我正在運行的代碼:

ROW_NUMBER() OVER (PARTITION BY id ORDER BY a,b) as seq

這是我正在使用的表格示例:

|  id |  a  | b  |name|
| --- | --- | -  | -- |
|  1  |12345| 14 |John|
|  1  |12345| 14 |Anne|
|  1  |23456| 14 |Dave|
|  2  |45445| 16 |Matt|

當一個seq值分配給前兩行時,順序是如何決定的? 將此作為 id,a 和 b 對於兩行都是相同的,並且似乎在不同的運行之間發生變化。

訂單是如何決定的?

順序將是對 Sql Server 最方便的順序。 有時這將是表順序(由源表的主鍵(聚集索引)決定,而不是插入順序),但很多事情都可能與此混淆,以至於您甚至可能會從一個時刻到下一個時刻得到不同的順序即使對於相同的查詢。 如果這很重要,您必須向 ORDER BY 子句添加更多字段,直到它足夠具體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM