create function [dbo].[udf_splitstring] (@tokens varchar(max),
@delimiter varchar(5))
returns @split table (
token varchar(200) not null)
as
begin
declare @list xml
select @list = cast('<a>'
+ replace(@tokens, @delimiter, '</a><a>')
+ '</a>' as xml)
insert into @split
(token)
select ltrim(t.value('.', 'varchar(200)')) as data
from @list.nodes('/a') as x(t)
return
end
CREATE TABLE #Table111
([PharmacyID] int, [Regimen] varchar(11))
;
INSERT INTO #Table111
([PharmacyID], [Regimen])
VALUES
(140646, '3TC/D4T/EFV'),
(140653, 'ABC/D4T/NVP')
;
select [PharmacyID], token FROM #Table111 as t1
CROSS APPLY [dbo].UDF_SPLITSTRING([Regimen],'/') as t2
출력
PharmacyID token
140646 3TC
140646 D4T
140646 EFV
140653 ABC
140653 D4T
140653 NVP
MySQL, MS SQL Server 또는 Postgresql을 사용하고 있습니까? 대답은 실 거예요 ... – jarlh
나는 MS SQL –
을 사용하고 있습니다. (받아 들인 답안에서와 같이) 문자열 분할 함수를 사용하는 것은 나쁜 생각이 아닙니다. 그러나 더 나은 접근법이 있습니다. [여기 : Aaron Bertrand about String Splitters] https://sqlperformance.com/2012/07/t-sql-queries/split-strings) – Shnugo