我有一列需要从“_”开始提取字符串的其余部分。下面的例子:
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)
但是,我对如何确保长度是从 _ 之后的开始和字符串的末尾开始感到困惑,以便它是动态的?基本上所以它迎合了“_”之后不同程度的字符串长度。
关于如何有效实现这一目标的任何想法?
最佳答案
以下将完成这项工作
SELECT SUBSTRING ('TF_Bskt Trade', CHARINDEX('_', 'TF_Bskt Trade') + 1, LEN('TF_Bskt Trade'))
因为 SUBSTRING 的长度参数的 documentation 声明“如果 start 和 length 的总和大于表达式中的字符数,则返回从 start 开始的整个 value 表达式。”。
关于sql-server-2008 - tsql - 使用 SUBSTRING 提取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20886658/