在sql中自动生成序列号
为自动生成序列号编写查询,当我从sql中删除订单时,序列号行中的序列号应为1234567,并且我使用订单id作为自动增量您可以用sql的大多数方言编写查询,如下所示:在sql中自动生成序列号,sql,serial-number,Sql,Serial Number,为自动生成序列号编写查询,当我从sql中删除订单时,序列号行中的序列号应为1234567,并且我使用订单id作为自动增量您可以用sql的大多数方言编写查询,如下所示: table orders +----+--------+------------+ |s.no| id | ordername | +----+--------+------------+ | 1 | 34 | name | +----+--------+------------+ |
table orders
+----+--------+------------+
|s.no| id | ordername |
+----+--------+------------+
| 1 | 34 | name |
+----+--------+------------+
| 2 | 35 | name |
+----+--------+------------+
| 3 | 36 | name |
+----+--------+------------+
| 4 | 37 | name |
+----+--------+------------+
| 5 | 38 | name |
+----+--------+------------+
以下是在SQL Server中使用的语法:
select row_number() over (order by id) as "s.no",
id, ordername
from orders o
您可以用大多数sql方言编写查询,如下所示:
table orders
+----+--------+------------+
|s.no| id | ordername |
+----+--------+------------+
| 1 | 34 | name |
+----+--------+------------+
| 2 | 35 | name |
+----+--------+------------+
| 3 | 36 | name |
+----+--------+------------+
| 4 | 37 | name |
+----+--------+------------+
| 5 | 38 | name |
+----+--------+------------+
以下是在SQL Server中使用的语法:
select row_number() over (order by id) as "s.no",
id, ordername
from orders o
适用于MYSQL用户 基于您不希望使用用户定义变量的原因,即希望避免有两个查询,一个用于初始化,另一个用于使用它,您可以使用以下方法:
with toupdate as (
select row_number() over (order by id) as newval,
o.*
from orders o
)
update toupdate set [s.no] = newval;
适用于MYSQL用户 基于您不希望使用用户定义变量的原因,即希望避免有两个查询,一个用于初始化,另一个用于使用它,您可以使用以下方法:
with toupdate as (
select row_number() over (order by id) as newval,
o.*
from orders o
)
update toupdate set [s.no] = newval;
它对我有用,希望我也能对你有用
它对我有用,希望我也能对你有用。回答:是的,有人可以写这个查询。更改数据中的数字听起来不是个好主意。在查询表时,您可以只指定一个序列号。您可以在此处为此编写查询吗?在视图中处理此问题可能更好,因为您的序列号列将发生更改。研究一下如何使用行号——这是非常特定于数据库的。回答:是的,有人可以编写此查询。更改数据中的行号听起来不是个好主意。在查询表时,您可以只指定一个序列号。您可以在此处为此编写查询吗?在视图中处理此问题可能更好,因为您的序列号列将发生更改。为此,请考虑使用行号--这是非常特定于数据库的。谢谢您的回答,但我如何在s中添加数据。在sql中没有行谢谢您的回答,但我如何在s中添加数据。在sql中没有行