【问题标题】:tsql - extract string using SUBSTRINGtsql - 使用 SUBSTRING 提取字符串
【发布时间】:2014-01-20 02:52:44
【问题描述】:

我有一列需要提取从“_”开始的字符串的其余部分。下面的例子:

TF_Bskt Trade would need to be "Bskt Trade"
SSC_Equity would need to be "Equity"
etc ......

所以我已经使用 TF_Bskt Trade 示例走到了这一步:

SELECT SUBSTRING ('TF_Bskt Trade' ,CHARINDEX('_','TF_Bskt Trade')+1, length)

但是,我对如何确保长度从 _ 之后的开头到字符串的结尾感到困惑,以便它是动态的?基本上,它可以满足“_”之后不同程度的字符串长度。

关于如何有效实现这一点的任何想法?

【问题讨论】:

    标签: sql-server-2008 tsql substring charindex


    【解决方案1】:

    以下将完成这项工作

     SELECT SUBSTRING ('TF_Bskt Trade', CHARINDEX('_', 'TF_Bskt Trade') + 1, LEN('TF_Bskt Trade'))
    

    因为 SUBSTRING 的 length 参数的 documentation 声明“如果 start 和 length 之和大于表达式中的字符数,则返回从 start 开始的整个 value 表达式。”。

    【讨论】:

    • LEN 不计算尾随空格:LEN('A ') 返回 1;
    • 没关系,我对计算尾随空格不感兴趣
    • 为什么不计算尾随空格哦,因为微软
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多