我在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 O
和Amar Shetty O
之类的名称
这些名称位于定界符|之间。
请帮助我解决此问题。
谢谢, 淡黄色
答案 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;