【问题标题】:How to split a non delimited string in T-SQL如何在 T-SQL 中拆分非定界字符串
【发布时间】:2013-04-04 05:27:03
【问题描述】:

我需要拆分一个没有分隔符的字符串值。我在银行工作,我正在选择一个 GL 帐号,需要将帐号与分行号码分开。问题是这两个值都作为一个长字符串传递,帐号为 10 位,帐户分支为 4 位。例如 01234567891234 需要更改为 0123456789.1234。

我发现的每一件事都说要使用 CHARINDEX 或 SUBSTRING。据我了解,两者都需要一个字符来搜索。如果有人可以提供另一个功能和一些示例代码,那就太好了。谢谢。

【问题讨论】:

    标签: sql-server tsql string-parsing


    【解决方案1】:

    你可以做一些简单的事情,比如

    left(str, 10) + '.' + right(str, 4)

    如果你知道它总是一个 14 个字符的字符串

    【讨论】:

    • 谢谢。我以前没见过。工作完美,再次感谢您的快速回复。我什至无法将其设置为已回答,它是如此之快。而且它总是 14 个字符长,所以我不必担心。
    【解决方案2】:

    你也可以使用STUFF函数如下:

    declare @accNo varchar(14) = '01234567891234'
    
    select stuff(@accNo,11,0,'.')
    

    SQL Fiddle

    【讨论】:

    • @MikaelEriksson:感谢您的编辑,我在第一次点击时犯了一个错误,然后因为有答案而被删除。
    • 正要写一个东西答案,然后我看到了你的。 +1
    猜你喜欢
    • 2011-07-03
    • 2021-06-23
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多