【问题标题】:How do I split an SQL column that is part string part number with variable length如何拆分作为具有可变长度的部分字符串部分编号的 SQL 列
【发布时间】:2019-03-21 15:29:32
【问题描述】:

我有一个使用字母和数字的 ID 列:例如 A00055AI000075。 文本值按 ASCII 码升序排列,所以我打算这样做:

CAST((COALESCE(ASCII(SUBSTRING([FaultID],1,1)),SUBSTRING([FaultID],2,(len([FaultID])))))AS bigint) as FaultID1

但是后来我意识到字母的长度可以是 1-3 个字符,所以一旦我用 2 个字母输入一个值,就会出错。有没有办法在第一个数值上拆分字符串?或者有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: sql string split integer


    【解决方案1】:

    我相信您可以使用 PATINDEX(模式索引),而不是 CHARINDEX。

    SELECT PATINDEX('%[0-9]%','MyString1111')

    这将返回字符串中第一个数值的从 1 开始的索引,然后您可以使用它来拆分字符串。

    PATINDEX 的文档是here

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多