3

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

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)

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

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

4

1 回答 1

4

以下将完成这项工作

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

因为正如 SUBSTRING 的长度参数的文档所述,“如果 start 和 length 的总和大于表达式中的字符数,则返回从 start 开始的整个值表达式。”。

于 2014-01-02T16:01:46.990 回答