_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈
FrontPage › StringCompare1

Contents

[-]
1 문제
2 솔루션


1 문제 #

다음과 같은 문제가 커뮤니티에 떳다. 벌써 아는 지인이 답글을 달았더라..답글과 더블어 풀이를 해본다.
'경기 고양시 일산서구 대화동 장성마을1단지아파트' 
'경기 고양시 일산서구 대화동 장성3단지 305-502'

위 두 문장을 비교하여 일치하는 단어의 갯수를 구하는 함수가 있는지 알고 싶습니다.
결과 값으로 18개 단어가 일치하므로 18의 값을 얻고 싶습니다.
좋은 해결책이 있다면 도움 바랍니다.
출처: http://www.sqler.com/191203#2

2 솔루션 #

DECLARE @str1 NVARCHAR(100)
DECLARE @str2 NVARCHAR(100)
DECLARE @len INT

SET @str1='경기 고양시 일산서구 대화동 장성마을단지아파트'
SET @str2='경기 고양시 일산서구 대화동 장성단지 305-502'
SET @len = CASE WHEN LEN(@str1) > LEN(@str2) THEN LEN(@str1) ELSE LEN(@str2) END

;WITH Dumy
AS
(
        SELECT 1 Seq
        UNION ALL
        SELECT Seq + 1 FROM Dumy
        WHERE Seq + 1 <= @len
)
SELECT 
	COUNT(*) Cnt
,	SUBSTRING(@str1, 1, COUNT(*)) str
FROM Dumy
WHERE Seq <= @len
AND SUBSTRING(@str1,Seq,1) = SUBSTRING(@str2,Seq,1)
OPTION (MAXRECURSION 0);

/*
Cnt         str
----------- ---------------------------------------------
18          경기 고양시 일산서구 대화동 장성
*/

댓글 남기기..
이름: : 오른쪽의 새로고침을 클릭해 주세요. 새로고침
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:53

우리가 행복한지의 여부는 우리들 각자가 진짜로 원하는 삶을 향해서 얼마나 당당하게 다가가고 있느냐에 달렸다. 그 채점 또한 저마다의 몫이다. (김한길)