SQL Server表中的值计数器

时间:2016-11-22 22:56:16

标签: sql sql-server sql-server-2008-r2

我的SQL Server 2008 R2数据库中有一个表,该表有一个不同的行,其中一列在其他表中有多行。我正在寻找的是一个更新查询,它将成为存储过程的一部分。

我试图为每一行都有一个10的计数器,这将重复(见下面的例子)

Load_Id Counter Description
===========================
C60000220121102134421 1 Text for Counter 1
C60000220121102134421 2 Text for Counter 2
C60000220121102134421 3 Text for Counter 3
C60000220121102134421 4 Text for Counter 4
C60000220121102134421 5 Text for Counter 5
C60000220121102134421 6 Text for Counter 6
C60000220121102134421 7 Text for Counter 7
C60000220121102134421 8 Text for Counter 8
C60000220121102134421 9 Text for Counter 9
C60000220121102134421 10 Text for Counter 10

这是我到目前为止所做的。

我有一个用计数器创建表的查询,但我似乎无法查询查看T_DB_CLIENT_INFO表中每一行的查询,并添加10行,计数器为1-10,以便描述可以绑定到每个值。

SELECT DISTINCT
    c.LOAD_ID,
    ROW_NUMBER() OVER (ORDER BY c.LOAD_ID) AS COUNTER,
    b.STATUS_DESCRIPTION,                                          
    c.CLNT_NM, c.CLIENT_ID, c.DATABASE_NAME, c.FLAG_FILTERED,
    s.[ROUND]
INTO 
    dbo.[load_id_counts] 
FROM 
    T_DB_CLIENT_INFO c 
JOIN 
    T_ICR_STAGING s ON c.LOAD_ID = s.LOAD_ID
JOIN
    overall_status_description b ON COUNTER = b.COUNTER

1 个答案:

答案 0 :(得分:0)

在您的情况下,%运算符的语法将是这样的:

SELECT DISTINCT
    c.LOAD_ID,
    ((ROW_NUMBER() OVER (ORDER BY c.LOAD_ID) -1) % 10) + 1 AS COUNTER,
    ...
  INTO dbo.[load_id_counts] 
  FROM T_DB_CLIENT_INFO c 
  ...

只需使用%运算符即可为0提供数字,但您希望编号从1开始,这就是您添加-1+1的原因。