【问题标题】:SQL working with number in varchar columnSQL 使用 varchar 列中的数字
【发布时间】:2018-03-23 16:05:05
【问题描述】:

我有这个存储在varchar 列中的 11 位长数字,我想在这个数字上添加另一个数字,这个数字由第二个、第三个、第四个、第五个和第六个字符组成,后跟5 个零(例如 51030406787)我要添加的数字是 1030400000。我想在 SQL 的查询中执行此操作。

【问题讨论】:

  • 某种不寻常的编码/加密形式?
  • 显示正确的数据样本
  • 你试过和研究left函数或right
  • 使用Cast来获取部分数字作为bigint,但我的难点是在数字后添加五个零。
  • 用您正在使用的数据库标记您的问题。

标签: sql numbers add varchar


【解决方案1】:

假设您的字符串编号列名为 my_number 您可以转换连接的字符串

      select my_number
          , cast(concat(substr(my_number,2,5), '00000')   AS UNSIGNED INTEGER)
          , cast( my_number, AS UNSIGNED INTEGER) + 
                     cast(concat(substr(my_number,2,5), '00000')   AS UNSIGNED INTEGER)
      from my_table  

【讨论】:

    【解决方案2】:

    标准语法类似于:

    select cast(col as bigint) + cast(substr(col, 2, 5) || '00000' as bigint)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 2013-08-27
      • 2016-06-09
      • 2021-11-08
      • 2018-09-05
      • 1970-01-01
      相关资源
      最近更新 更多