【问题标题】:How to subtract from each number in a comma delimited string?如何从逗号分隔字符串中的每个数字中减去?
【发布时间】:2014-03-19 20:36:51
【问题描述】:

我有一个带有字符串字段的表,其中可以是一个数字或多个数字(用逗号分隔)。我需要找到值(转换为整数时)和未指定值之间的差异。为简单起见,我只说要比较的值是静态值 10。

示例表:

iId vchStringNumbers vchSubtractedStringNumbers 1 20, 30, 40 2 50 3 20

期望的结果:

iId vchStringNumbers vchSubtractedStringNumbers 1 20, 30, 40 10, 20, 30 2 50 40 3 20 10

有没有办法在 SQL 中实现这一点?如果在 excel 或类似的东西中更容易,也请随时回答。

【问题讨论】:

    标签: sql excel split subtraction delimited


    【解决方案1】:

    如果可以访问 Excel 2019 或 Excel O365,还可以使用(B2):

    =TEXTJOIN(", ",,FILTERXML("<t><s>"&SUBSTITUTE(B2,",","</s><s>")&"</s></t>","//s")-10)
    

    【讨论】:

      【解决方案2】:

      将您的 CS 数据放在 Excel 列中,选择单元格并运行这个微型 VBA 宏:

      Sub SubtractCSV()
          Dim r As Range
          For Each r In Selection
              ary = Split(r.Value, ",")
              For i = LBound(ary) To UBound(ary)
                  ary(i) = CLng(Trim(ary(i))) - 10
              Next i
              r.Offset(0, 1).Value = Join(ary, ",")
          Next r
      End Sub
      

      【讨论】:

      • 我在 Excel 中试过这个,它就像一个魅力。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2016-04-24
      • 2013-03-16
      • 1970-01-01
      • 2017-12-24
      相关资源
      最近更新 更多