Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:使用索引更新列,该索引在列更改时重置_Sql_Stored Procedures_Sybase - Fatal编程技术网

SQL:使用索引更新列,该索引在列更改时重置

SQL:使用索引更新列,该索引在列更改时重置,sql,stored-procedures,sybase,Sql,Stored Procedures,Sybase,首先,很抱歉问题的措辞。我不太确定如何表达它。希望下面的例子是清楚的 如果我有桌子 Id | Type | Order 0 | Test | null 1 | Test | null 2 | Blah | null 3 | Blah | null 我想把它变成这个 Id | Type | Order 0 | Test | 1 1 | Test | 2 2 | Blah | 1 3 | Blah | 2 因此,我按“类型”对表进行分组,并递增地为“顺序”分配一个数字。每种类型从

首先,很抱歉问题的措辞。我不太确定如何表达它。希望下面的例子是清楚的

如果我有桌子

Id | Type | Order
0  | Test | null
1  | Test | null
2  | Blah | null
3  | Blah | null
我想把它变成这个

Id | Type | Order
0  | Test | 1
1  | Test | 2
2  | Blah | 1
3  | Blah | 2
因此,我按“类型”对表进行分组,并递增地为“顺序”分配一个数字。每种类型从1开始

我该怎么做呢

我使用的数据库是Sybase 15

select
    Id, 
    Type, 
    row_number() over(partition by Type order by Id) as [Order]
from YourTable
你应该利用这个功能得到你想要的东西

行号(Transact-SQL)

返回结果分区内行的序列号 设置,从每个分区中第一行的1开始


我的回答假设是SQL Server。您的关系数据库管理系统是什么?请详细说明。我正在使用Sybase,虽然我确信您的答案是正确的,但我似乎无法在Sybase中获得相同的结果。我已删除了我的答案,并添加了
Sybase
标记,以便其他人了解您的RDBMS。我认为您仍应保留您的答案作为参考。什么不适用?Sybase(ASE?SQL Anywhere?)15是否没有实现行数?而这并不能解决我的确切问题。在一般情况下,这是解决问题的正确方法。