필드에 데이터가
김박사<br>최박사<br>이박사<br>윤박사 이런식으로 들어있습니다.
구분자는 <br>인데 예를들어 최박사의 위치가 필드에서 2번째라는걸 셀렉트 쿼리문 으로 알아내고 싶습니다.
어떤식으로 하면될지 가르침 부탁 드립니다.
Comment 2
-
catchv
2015.05.07 11:39
-
한태
2016.03.22 21:24
create table bak(br varchar(50))insert into bak values('김박<br>최박사<br>이박사<br>윤박사'),('김박사<br>윤박사<br>최박사<br>이박사'),('최박사<br>이박사<br>윤박사<br>김박사'),('김박사<br>최박사<br>이박사<br>윤박사')select * from bak;with cte as(select '<br>'+br as br, CHARINDEX('<br>','<br>'+br,1) aa, 1 numfrom bakunion allselect br, CHARINDEX('<br>',br,aa+1) aa, num+1from ctewhere num<4)select substring(br,5,LEN(br)) as 박사, num from ctewhere aa=CHARINDEX('<br>최박사',br,1)순환CTE를 이용하여서 최박사의 위치를 구해보았습니다.
이런 식으로 하면되지 않을까요?
SELECT
CASE WHEN SUBSTRING(col1, CHARINDEX(N'<BR>', T.col1) + LEN(N'<BR>'), LEN(N'최박사')) = N'최박사' THEN 1
ELSE 0
END
FROM (
SELECT N'김박사<br>최박사<br>이박사<br>윤박사' AS col1
UNION ALL SELECT N'김박사<br>최사박<br>이박사<br>윤박사' AS col1
UNION ALL SELECT N'김박사<br>최사<br>최박사<br>윤박사' AS col1
) T