可变字符串:需要获取位于定界符之间的子字符串

时间:2019-02-13 13:49:10

标签: sql

我在sql中有列数据。

Row1= {office Visit|01/09/19 12:35|Atonde.Adedayo O|Draft|{20190123.155152|1051|R|}}
Row2= {Labaratory Visit|01/09/19 12:35|Amar Shetty O|Draft|{20190123.155152|1051|R|}}

等等... 我在每行中都有此可变长度数据。 我想提取诸如Atonde.Adedayo OAmar Shetty O之类的名称 这些名称位于定界符|之间。 请帮助我解决此问题。

谢谢, 淡黄色

1 个答案:

答案 0 :(得分:0)

如果您使用的是SQL Server 2016+,则可以使用此技巧:

DECLARE @Row1 VARCHAR(200) = '{office Visit|01/09/19 12:35|Atonde.Adedayo O|Draft|{20190123.155152|1051|R|}}';
DECLARE @Row2 VARCHAR(200) = '{Labaratory Visit|01/09/19 12:35|Amar Shetty O|Draft|{20190123.155152|1051|R|}}';
DECLARE @Result VARCHAR(200);

SELECT @Result = T.value FROM
(SELECT TOP 3 * FROM String_Split(@Row1, '|')) AS T;

PRINT @Result;

SELECT @Result = T.value FROM
(SELECT TOP 3 * FROM String_Split(@Row2, '|')) AS T;

PRINT @Result;