SQL Server“ SELECT”中的条件自动增量值

时间:2018-10-17 08:23:10

标签: sql sql-server tsql select

表1中的可用数据

ID  Name1   Address
1   nm1     abc
1   nm2     def
1   nm3     ghi
0   nm4     jkl
0   nm5     mno
0   nm6     pqr
1   nm7     stu
1   nm8     vwx
1   nm9     yza
0   nm10    bcd

表1的预期输出

ID  Name1   Address Counter
1   nm1      abc      1
1   nm2      def      1
1   nm3      ghi      1
0   nm4      jkl      2
0   nm5      mno      2
0   nm6      pqr      2
1   nm7      stu      3
1   nm8      vwx      3
1   nm9      yza      3
0   nm10     bcd      4

订单必须使用关键字段进行排序,并且需要在预期输出中生成自动递增编号。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要知道行的顺序。我想这是示例数据,在您的实际场景中,您可以采用独特的方式对数据进行排序。对于您的样本数据,我正在使用以下语句对行进行排序:

f''

有不同的解决方案(有些也取决于您的SQL版本)。如果您使用的是CAST(REPLACE([Name], 'nm', '') AS INT) ,则可以使用SQL Server 2012+函数查找上一行和当前行的LAG值是否已更改,然后使用ID子句将这些更改求和:

OVER

enter image description here