-3

我有如下要求。我有如下表:

ID  SID  VID  VTXT
1    10  v_5   Five
1    10  v_5   asd
2    11  v_7   Seven
2    11  v_7   seven
3    12  v_9   NINE
3    12  v_9   Nine
3    12  v_9   nine

我需要输出为:

ID  SID  VID  VTXT
1    10  v_5   Five
2    10  v_5   asd
1    11  v_7   Seven
2    11  v_7   seven
1    12  v_9   NINE
2    12  v_9   Nine
3    12  v_9   nine

请帮我解决这个问题。

4

3 回答 3

2

如果这是针对 sql-server 的,我不知道您制作的标签的语法

update table 
set ID=(select rn=row_number() over(partition by ID order by ID) from table)
于 2014-03-19T07:31:23.013 回答
0

你的意思是你想订购这样的结果?

Order by SID, ID
于 2014-03-19T07:33:16.960 回答
0

您可以将 ROW_NUMBER() 函数与 Partition By 子句一起使用

这是示例

SELECT row_number() AS ID, 
    SID, 
    VID, 
    VTXT
FROM VTable;

Partition By 允许对由 PARTITION BY 子句列值的每个组合定义的组中的行重新编号。

您可以参考参考文档中的SQL Row_Number示例,希望对您有所帮助

于 2017-02-22T15:16:27.393 回答