【问题标题】:SubString of value with several 0s具有多个 0 的值的子字符串
【发布时间】:2013-02-04 20:38:58
【问题描述】:

表格中的数据是这样的

ID  Value
1   5006049
2   5006050

如何选择一个子字符串以便得到

R6049
R6050

请记住,这些值从

开始是连续的
5000001 = R1

5999999 = R999999

【问题讨论】:

  • 是的,它是一个整数列

标签: sql-server substring


【解决方案1】:

减法

SELECT 'R' +  CAST(VALUE - 5000000 as VARCHAR(6))
FROM table

SqlFiddle

【讨论】:

  • 漂亮,我从没想过减法。干得好
  • 需要 CAST 或 CONVERT 来连接 VARCHAR 和非 VARCHAR 值,是的
【解决方案2】:

我想就这么简单:

Select 'R'+Substring(convert(VARCHAR(7), Value), 4,7)

哪个会给出 R0001(你想要零吗?)

如果您不想要零/只希望删除最高位:

Select 'R'+ convert(VARCHAR(6),Value - 5000000)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多