所在的位置: mysql >> mysql市场 >> mysqlrownumber用法

mysqlrownumber用法

北京中科医院坑 https://m.39.net/baidianfeng/a_5153159.html

mysqlrownumber()用法为:ROW_NUMBER()OVER(partition_definitionorder_definition)。具体可分为:1)为行分配序号。以下语句使用ROW_NUMBER()函数为products表中的每一行分配一个序号:

SELECT

ROW_NUMBER()OVER(

ORDERBYproductName

)row_num,

productName,

msrp

FROM

products

ORDERBY

productName;

2)找到每组的前N行。你可以将ROW_NUMBER()功能用于查找每个组的前N行的查询。3)删除重复的行。你可以使用ROW_NUMBER()它将非唯一行转换为唯一行,然后删除重复行。4)使用ROW_NUMBER()函数分页。因为ROW_NUMBER()为结果集中的每一行指定一个唯一的数字,所以可以将其用于分页。

MySQLROW_NUMBER()使用会话变量

我们可以模拟ROW_NUMBER()函数,使用会话变量按递增顺序添加行号。

执行以下语句,为每行添加行号,从1开始:

SET

row_number=0;

SELECTName,Product,Year,Country,

(

row_number:=

row_number+1)ASrow_num

FROMPersonORDERBYCountry;

在此语句中,我们首先指定

prfix指示的会话变量

row_number并将其值设置为0。然后,我们从表Person中选择数据,并将变量

row_number的值每行增加1。

同样,我们将使用会话变量作为表并使用以下语句将其与源表交叉连接:

SELECT(

row_number:=

row_number+1)ASrow_num,Name,Country,Year

FROMPerson,(SELECT

row_number:=0)AStempORDERBYYear;




转载请注明:http://www.aierlanlan.com/rzdk/7513.html