SQL提取字符之间的文本

时间:2019-02-27 15:48:48

标签: sql sql-server tsql substring

我正在尝试提取两个字符之间的字符串。对于任何数字,长度都可以更改。我尝试提取的值只是例如0001A,0002BB,0003C等

使用select SUBSTRING(ordtxt,7,4) as ordtxt,我只能从左边提取x个字符,而这并不是我真正想要的东西。

100/0/0001A/001
101/000/0002BB/001
102/00/0003C/0001

谢谢您的帮助。

1 个答案:

答案 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