SQL中 按某一列的不同值加内部序号

SQL中 按某一列的不同值加内部序号,第1张

select t2.FItemID as FCustID, row_number() over (partion by t2.FName order by t2.FName desc)as [FID],t2.FHelpNumber as Fname,t3.FName as FCar,t3.FCarStatus FStatus,t4.FName as FItem

from ZN_T_CarDiaoDu t1 inner join ZN_T_Customer t2 on t1.FCustomer=t2.FitemID inner join ZN_T_GCar t3 on t1.FGCarID=t3.FItemID inner join ZN_T_QCar t4 on t1.FQCarID=t4.FItemID

order by t2.FItemID

大致梁橘就是这蠢渣搭个意思带拿,在order by 前家partion by

现有厅含灶两老耐种方法解决,供参考:

1、SELECT IDENTITY(INT,1,1) AS 序号, avge FROM Table1

2、SELECT IDENTITY(INT,1,1) AS 序号, avge INTO #temp1 FROM Table1

SELECT * FROM #temp1

DROP TABLE #temp1

给查询出的SQL记录添加序号列,解决方法有以下两种 

第一:

select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

(table 为表名,字段为表a中的字段名) 

第二:

select RANK()  OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

(table 为表扮扮名,字段为表a中的字段名)

要在 SQL 中根据一列的数据填充另一列的编号,可以使用窗口函数。

例如,如果要根据列1填充列2,可以使用如下 SQL 语句:

SELECT

列1,ROW_NUMBER() OVER (PARTITION BY 列1 ORDER BY 列1) 列2FROM 表A

其中,ROW_NUMBER()是一个窗口函数,它根据给定的分组条件(在本例中为列1),为每一行生成一个唯一的行号

结果应该类似于下面这样:

列衫轿搭1 列2

aa1

aa1

bb1

cc1

注意,由于没有给定排序条件,因此行号的生成顺序是不确定的。如果要按照列1的值或拿的字母顺序为每一行帆昌生成行号,可以将上面的语句更改为:

SELECT

列1,ROW_NUMBER() OVER (PARTITION BY 列1 ORDER BY 列1) 列2FROM 表AORDER BY 列1

结果应该类似于下面这样:

列1 列2

aa1

aa1

bb2

cc3

希望这些信息能对你有所帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11973089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存