我正在尝试提取两个字符之间的字符串。对于任何数字,长度都可以更改。我尝试提取的值只是例如0001A,0002BB,0003C等
使用select SUBSTRING(ordtxt,7,4) as ordtxt
,我只能从左边提取x个字符,而这并不是我真正想要的东西。
100/0/0001A/001
101/000/0002BB/001
102/00/0003C/0001
谢谢您的帮助。
答案 0 :(得分:6)
您可以使用一种简单的XML方法,该方法将从分隔的字符串中隔离值
SELECT
convert(xml,'<x>'+replace(YourColumn,'/','</x><x>')+'</x>').value('/x[3]','varchar(100)')
FROM YourTable
该解决方案将字符串分解为数字索引表示的位置,只需选择所需的必需元素即可。
例如,如果您需要0001、0002、0003,则在上面的函数中使用3的位置。
语法基于SQL Server