如何更新账单编号栏?或在 sql server 的列中按顺序排列

Posted

技术标签:

【中文标题】如何更新账单编号栏?或在 sql server 的列中按顺序排列【英文标题】:How to update bill number column ? or arrange in sequence wise in column in sql server 【发布时间】:2021-03-05 09:30:44 【问题描述】:

我处理代码,我希望制作这种类型的代码,例如我在 SQL 服务器数据库上删除一个和多个账单,然后在我安排或更新我的账单编号列值之后,例如:- 账单编号是 (1, 2,3,4,5) 然后我删除了我相同的账单记录或行 (1,3,5),那么我怎样才能像这样 (1,2,3,) 更新或排列顺序明智的账单编号。

【问题讨论】:

请只标记您真正使用的RDBMS; mysql 和 SQL Server 是完全不同的产品。你在这里实际上问什么,因为你什么都不问?你试图解决什么问题?为什么它不起作用? 我正在使用 SQL 服务器 ..................实际上,我在问:-----根据我可用的上图账单号是 (1, 1, 2, 3,4,5,6,7,8,9 ) 所以我删除了带有所有整行数据的账单号 2,5,8 以便可用的账单号 (1, 1, 3,4,6,7,9 ) .......所以我想在删除可用数据后按以下顺序使用账单编号进行更新或重新排列:------(1, 1, 2, 3 ,4,5,6) 那我该怎么办... DELETE FROM dbo.YourTable WHERE Bill_no IN (2,5,8); 有什么问题?作为新的“数字”,计算您使用ROW_NUMBER 检索数据的时间。 VIEW 可能是您真正想要的。不要重复使用唯一标识符;这是一个糟糕的主意。 【参考方案1】:

几乎不可能知道你在问什么

但您可以使用 ORDER BY (https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15) 对 SQL 集进行排序

或者如果你需要一个连续的整数,我建议你像这样在查询中添加一些东西

SELECT *,
       ROW_NUMBER() OVER(ORDER BY bill_no) AS rowNumber
FROM YourTable

这应该为您的集合中的每一行提供一个连续的整数。

【讨论】:

namebill_no 之间需要一个逗号。 其实我在问:-----根据我上面的图片,可用的账单号是 (1, 1, 2, 3,4,5,6,7,8,9 )所以然后我删除带有所有整行数据的第 2、5、8 号账单,然后可用的账单号(1、1、3、4、6、7、9)......所以我想要更新或重新排列按以下顺序使用帐单编号删除可用数据后:------(1, 1, 2, 3,4,5,6) 那我该怎么办...

以上是关于如何更新账单编号栏?或在 sql server 的列中按顺序排列的主要内容,如果未能解决你的问题,请参考以下文章

SQL server 建立的触发器子查询返回值不唯一,需要用多个返回值如何操作

SQL Server 在日期范围内聚合

sql server如何分组编号

SQL Server标识列重新编号[重复]

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?

我应该如何在 SQL Server 2005 中实现“自动编号”字段?