강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

문자열에서 단어 분리 - SQL Server 2005
작성자 : M 최고의하루
등록날짜 : 2008.12.23 10:00
1,895

가끔 긴 문자열에서 각 단어들을 분리하여 테이블에 저장하고 싶을 경우가 있습니다. 이때 사용할 수 있는 쿼리를 소개하고자 합니다. 먼저 아래 쿼리를 실행합니다.

SET QUOTED_IDENTIFIER OFF
GO
DECLARE @str varchar(2000);
SELECT @str =
"A lonely moon about the sky,
A gentle flower in the breeze,
A giant cloud of smoky stars,
Some sticky honey made by bees.

The soft sweet voice of melody
And moist warm air, which we all breathe
Tremendous power of our minds
Which can make everyone believe..."

SELECT @str = REPLACE(@str, CHAR(10), ' ');
SELECT @str = REPLACE(@str, CHAR(13),  ' ' );

WITH ProcessText AS
(SELECT 1 as startPos, CHARINDEX (' ',@str, 1) as  spacePos 
UNION ALL
SELECT spacePos + 1, CHARINDEX (' ',@str, spacePos + 1)
FROM ProcessText WHERE spacePos > 0)
 
SELECT startPos,
        spacePos,
       SUBSTRING(@str, startPos, spacePos - startPos) AS singleWord
  INTO #words
  FROM ProcessText WHERE spacePos <> 0
 UNION ALL
 SELECT MAX(spacePos) + 1, 0, RIGHT(@str, LEN(@str) - MAX(spacePos))
   FROM ProcessText
 OPTION(MAXRECURSION 0);

위의 쿼리를 실행 후 #words 테이블을 조회해 보면 각 단어들이 모두 분리되어 각각의 위치 정보와 함께 저장되어 있음을 알 수 있습니다.

SELECT * FROM #words

<PRE>startPos spacePos sepWord----------- ----------- --------1 2 A3 9 lonely10 14 moon15 20 about21 24 the25 29 sky,30 30 31 32 A33 39 gentle40 46 flower. . . . . . . . . . . . . . . . .112 116 made117 119 by120 125 bees.126 126 127 127 128 128 129 132 The. . . . . . . . . . . . . . .244 248 make249 257 everyone258 0 believe...</PRE><PRE>또한 문자열에 총 몇개의 단어가 있는지 검사하기 위해서는 아래의 쿼리를 사용할 수 있습니다.</PRE><PRE>SELECT COUNT(*) AS numWords FROM #words WHERE singleWord <>'';
</PRE><PRE>Result:numWords-----------48</PRE><PRE>마지막으로 문자열에 나타난 각 단어들의 빈도수를 분석하는 쿼리입니다.</PRE><PRE>SELECT COUNT(*) AS wordFrequency, singleWord FROM #words GROUP BY singleWord;-- Result:wordFrequency singleWord9 3 A1 about1 air,1 all1 And1 bees.1 believe...1 breathe1 breeze,1 by1 can. . . . . . . . . . . .1 sticky1 sweet3 The1 Tremendous1 voice1 warm1 we2 Which</PRE>

[출처] 웹디황용

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2475 MsSql 날짜 함수 99 단국강토 01.02 1560
2474 SQL Server에서 글로벌 변수 구현하기 99 단국강토 12.30 2238
2473 <ms-sql>제약 (constraint)-NOT NULL, DEFAULT, PRIMAY 99 단국강토 12.30 2516
2472 MSSQL Server DBA 가이드-5 M 최고의하루 12.26 1797
2471 MSSQL Server DBA 가이드-4 M 최고의하루 12.26 3480
2470 MSSQL Server DBA 가이드-3 M 최고의하루 12.26 1559
2469 MSSQL Server DBA 가이드-2 M 최고의하루 12.26 1524
2468 MSSQL Server DBA 가이드-1 M 최고의하루 12.26 1699
2467 [SQL] sysobjects M 최고의하루 12.26 2259
2466 1..순위 결정 함수 M 최고의하루 12.24 1800
2465 데이터베이스의 저장 프로시저를 자동으로 생성 M 최고의하루 12.24 1468
열람중 문자열에서 단어 분리 - SQL Server 2005 M 최고의하루 12.23 1896
2463 25가지 SQL작성법-3 M 최고의하루 12.23 2178
2462 25가지 SQL작성법-2 M 최고의하루 12.23 2361
2461 25가지 SQL작성법-1 M 최고의하루 12.23 1740
2460 제약조건(1) M 최고의하루 12.20 3633
2459 [MSSQL]SQL Server Management Studio Express M 최고의하루 12.20 2777
2458 Microsoft SQL Server 2005 Express Edition SP2 M 최고의하루 12.19 2122
2457 Microsoft SQL Server Management Studio Express SP2 M 최고의하루 12.19 1976
2456 [MSSQL] 데이터 백업과 복구 ( SQL SERVER ) M 최고의하루 12.18 2192
2455 [ Sybase ] Sybase 기본 명령어 M 최고의하루 12.18 2780
2454 오라클(Oracle) 10g Database 설치 M 최고의하루 12.04 2280
2453 오라클데이터베이스 복구 M 최고의하루 12.04 1892
2452 요일, 연중/월중 몇째주 구하기 13 김영철 01.23 2902
2451 다른 서버로 DB 백업 받기 13 김영철 01.23 1887
2450 MSSQL 내장 함수 목록 13 김영철 01.23 2060
2449 몇가지 sql 명령어 13 김영철 01.23 2825
2448 명령어정리 13 김영철 01.23 1614
2447 order by newid() 13 김영철 01.23 2223
2446 SQL : Categories : 프로시저(Procedure). 13 김영철 01.23 1975
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취