我的数据看起来像这样
(456)
(DEF)
(WXYz)
我希望从RIGHTMOST括号中拉出字符串。结果看起来像这样
{{1}}
括号内的整个字符串和字符串可以有所不同。它是substring和charindex的一些组合,但我无法弄明白。
答案 0 :(得分:1)
这样的问题表明数据结构存在问题 - 字符串实际上由多个项组成。但是,有时这种字符串处理是必要的。
假设括号内的组件始终存在,以下方法应该有效:
select t.*, colparen
from t cross apply
(values (right(col, charindex('(', reverse(col)) - 1)) v(colr) cross apply
(values (charindex(colr, charindex(')', col) + 1)) v(colparen)
答案 1 :(得分:0)
自2016年起,您可以将 String_Split()与 Cross Apply 结合使用。
注意:如果没有观察结果并且您想显示空值,请使用外部应用。
示例强>
MinHeight
<强>返回强>
SizeToContent = "WidthAndHeight"
<强> dbFiddle 强>
答案 2 :(得分:0)
select REVERSE(substring(reverse('ABCD.(123).(456)'),CHARINDEX(')',reverse('ABCD.(123).(456)')),CHARINDEX('(',reverse('ABCD.(123).(456)'))))
这可以让你得到你想要的东西