TAGS
#관광지#복합문화공간#안보관광
#강원특별자치도#고성#관광지#항구
.
.
.
.
TAGS 컬럼에 데이터를 #을 구분자로 Split 후 임시테이블에 모두 입력을 하려고 합니다.
EX)
관광지
복합문화공간
안보관광
강원특별자치도
고성
관광지
항구
--------------------------------------------------------------------------------------------------------
CREATE TABLE #TEMP
(
TAG NVARCHAR(100)
)
INSERT INTO #TEMP
SELECT
(
SELECT * FROM dbo.FN_GET_Split(A.TAGS, '#')
)
FROM 테이블T A
T테이블의 전체를 돌면서 테이블반환함수로 Split을 해준뒤 #TEMP 테이블에 모두 넣어주려고 할때
하위 쿼리에서 값을 둘 이상 반환했습니다 오류가 나서
반복문을 통해 해결을 하긴하였습니다.
서브쿼리를 이용해 작업을 하고 싶은데 방법이 혹시 없을까요?
Comment 1
-
지영아빠
2023.11.14 22:28
fn_get_split을 cross apply하시면 될듯.
create table t1 (id int, tags varchar(100))
insert into t1 (id, tags)
select 1, '#관광지#복합문화공간#안보관광' union all
select 2, '#강원특별자치도#고성#관광지#항구'
SELECT value
FROM t1
CROSS APPLY string_split(tags, '#')
where len(value) > 0