sql如何将表中某一字段值更新为该行记录的行号

sql如何将表中某一字段值更新为该行记录的行号,第1张

这个 *** 作的本意是什么?

你的行号是以数据表现有数据为准,还是其他的?

我猜测你应该是主键ID设置的为自增字段,期间对数据又进行过删除 *** 作,后面想对数据进行分页查询时,想通过记录的行号来查询数据,如果是这样的话,这样的更新 *** 作作用不大,如果是其他用途的话,sql2005之后的版本对于分页查询有一个 row_number(order by 字段名XX) 的系统函数,它在查询数据时会对查询的数据结果进行计数(也就是行号),你可以写一个存储过程,便利数据表的所有数据,利用这个函数的值,把他复制给你想要保存行号的字段就可以了。

数据库里面行的顺序与数据的属性无关,这是关系数据库最基本的特色,你应该另外有字段代码行号,或者能指明相关关系,比如RID为行号,那么删除语句是:

DELETE

FROM

WHERE

RID

BETWEEN

100

AND

150

1打开SqlServer2008,选中 工具→选项\x0d\\x0d\2选中 文本编辑器→所有语言→常规→勾选“行号”→确定\x0d\\x0d\3\x0d\然后就可以看到行号了,很简单吧!

Oracle或SQL Server2005以上的版本

row_number排序函数

SQL2000可用,变量赋值

--> --> (Roy)生成测试数据

declare @T table([id] nvarchar(1),[num] int,[type] nvarchar(10))

Insert @T

select N'a',12,N'name' union all

select N'c',21,N'nate' union all

select N'd',25,N'adfa' union all

select N'f',25,N'ssdf' union all

select N'g',58,N'name'

declare @type nvarchar(10),@i int,@s nvarchar(200)

set @type='Name'

select @i=-1,@s=''

Select @i=@i+1,@s=@s+case when type=@type then RTRIM(@i)+' ' else '' end from @T

print @s

(5 row(s) affected)

0 4

看你的意思行号就是显示顺序号,你的查询结果可以按id升序排序(order by id),这样查询结果的顺序就是显示的顺序,这个行号可以在程序里加上,不用在数据库 *** 作。另外最好是加上一个排序值得字段,这样可以随时调整显示顺序。

以上就是关于sql如何将表中某一字段值更新为该行记录的行号全部的内容,包括:sql如何将表中某一字段值更新为该行记录的行号、oracle中删除某表中指定若干行的数据,根据行号,比如删除某表中第100行和150行之间的数据。、sql server怎么显示行号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9420036.html

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

发表评论

登录后才能评论

评论列表(0条)

保存