【问题标题】:How to increment by a specific number in Select Statement?如何在 Select 语句中增加特定数字?
【发布时间】:2017-02-11 20:14:28
【问题描述】:

我需要在 select 语句中增加一个特定的数字。我明白这一点:-

SELECT ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS 'rownumber',*
FROM YourTable

但我需要类似下面的语句。但是来自 c#,我只是想从 tsql 中展示我需要的东西:-

SELECT 
    xValue,
    @x = @x + 0.009 as yValue
FROM
    Table
WHERE
    ID = 1

假设此语句返回 10 行。请帮忙。

【问题讨论】:

  • 这个问题解决了吗?您需要进一步的帮助吗?请给我一个提示:如果这个问题得到解决,您将非常好心,在(最佳)答案的投票计数器下方勾选接受检查。这将 1) 将此问题标记为已解决 2) 让追随者更容易找到最佳解决方案 3) 向回答者支付积分和 4) 向您支付积分。由于您自己已经越过了 15 点边界,因此您还被要求对贡献进行投票。这是说谢谢的方式。编码快乐!

标签: c# tsql sql-server-2012


【解决方案1】:

你在寻找这样的东西吗?

SELECT TOP 10 name
             ,CAST(ROW_NUMBER() OVER(ORDER BY name) AS decimal(16,3)) * 0.009 
FROM sys.objects

使用的因子(这里是 0.009)可以很容易地作为变量提交...

更新

如果你想以0开头,请使用它

SELECT TOP 10 name
             ,CAST((ROW_NUMBER() OVER(ORDER BY name)-1) AS decimal(16,3)) * 0.009 
FROM sys.objects

【讨论】:

    【解决方案2】:

    您不想将每个 ROW_NUMBER() 乘以您的增量值吗?

    SELECT TOP 10
        AccountNumber,
        ROW_NUMBER() OVER(ORDER BY AccountNumber) * 10 AS 'yValue'
    FROM dbo.Acccounts
    
    AccountNumber   yValue
    1               10
    2               20
    3               30
    4               40
    5               50
    6               60
    30106           70
    30107           80
    30108           90
    30109           100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 2022-11-01
      • 2013-07-28
      • 2013-09-17
      • 2021-07-06
      • 1970-01-01
      • 2021-10-04
      相关资源
      最近更新 更多