在 SQL 中,ROW_NUMBER() 函數用于給結果集中的每一行分配一個唯一的序號。這個序號是基于 ORDER BY 子句指定的列的排序順序來分配的。使用 ROW_NUMBER() 函數可以實現對結果集中的行進行排序、篩選和分組等操作。
以下是使用 ROW_NUMBER() 函數的示例:
SELECT
ROW_NUMBER() OVER (ORDER BY column_name) AS row_num,
column1,
column2
FROM
table_name;
在上面的示例中,ROW_NUMBER() 函數會根據 column_name 列的值對結果集進行排序,并為每一行分配一個唯一的序號,序號存儲在名為 row_num 的列中。您可以根據需要修改 ORDER BY 子句中的列名來改變排序順序。
您也可以結合使用 ROW_NUMBER() 函數和子查詢來實現更復雜的操作,例如按照分組排序并對每個分組進行編號:
SELECT
ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY sort_column) AS row_num,
group_column,
column1,
column2
FROM
table_name;
在上面的示例中,ROW_NUMBER() 函數會根據 group_column 列的值分組,并在每個分組內按照 sort_column 列的值排序,并為每一行分配一個唯一的序號。
總之,ROW_NUMBER() 函數是一個非常有用的函數,可以幫助您對結果集中的行進行排序、篩選和分組等操作。通過靈活地使用 ROW_NUMBER() 函數,您可以實現各種不同的需求。