【问题标题】:TSQL Add two NumbersTSQL 两个数字相加
【发布时间】:2014-03-19 03:50:57
【问题描述】:

我知道这对某些人来说可能很简单,但我很难做到这一点。我只是想将两列加在一起。我的第一个数字是“FirstShift”= 90,“SecondShift”= 100。为什么我没有得到 190?我应该看到我的 23 条记录都有不同的值 190 是我的最高记录。

SELECT
    [FirstShift] + [SecondShift] AS [Total Counted]
FROM

谢谢

【问题讨论】:

  • 两列是否都有数字数据类型`
  • 应该工作:sqlfiddle.com/#!3/df6a8/1
  • 如果结果是串联,那么列不是数字数据类型。
  • 嗯,是的!如果它只包含不带小数位的数字,您可以使用INT
  • 我在辣椒锅里放了糖,现在我的辣椒锅不能正常工作了。我应该把糖放在糖碗里吗?

标签: sql sql-server tsql


【解决方案1】:

如果这些不是数字字段,您将不得不修复架构,或将它们转换为数字字段。

如果您不想修复架构,请尝试将查询更改为此。

SELECT
    CAST([FirstShift] AS DECIMAL) + CAST([SecondShift] AS DECIMAL) AS [Total Counted]
FROM

【讨论】:

    【解决方案2】:

    好的...“真的”表示 [FirstShift] 和 [SecondShift] 的表列都具有数字数据类型吗?

    我知道有人问过,但你说的是真的吗?

    如果任一字段是字符串,“+”运算符将充当“连接符”。 如果两个字段都是数字,它将充当“求和”运算...

    Table [A]
    [FirstShift] VARCHAR(10)    holds value "90"
    [SecondShift] VARCHAR(10)   holds value "100"
    
    [FirstShift] + [SecondShift] ==>  "90100"
    

    鉴于

    Table [A]
    [FirstShift] INTEGER(10)    holds value 90
    [SecondShift] INTEGER(10)   holds value 100
    
    [FirstShift] + [SecondShift] ==>  190
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多