일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- tempDB
- wap
- jdbc driver
- JavaScript
- MSSQL보안
- 인젝션
- WML
- 이미지가로길이
- ERD
- join
- VARIABLE
- VarType
- sql순위
- update
- FileSystemObject
- 정규식
- asp함수
- sql업데이트
- 한글입력체크
- sql랭킹
- 이미지세로길이
- inner join
- SPLIT
- instr
- 자바기초
- array
- javascript 한글입력체크
- xmldom
- injection
- XML
- Today
- Total
3초기억력
mssql 프로시저 cursor, charindex 사용하여, ','파싱한 값을 그룹핑 카운트 본문
제목 : mssql 프로시저 cursor, charindex 사용하여, ','파싱한 값을 그룹핑 카운트
소스 :
alter PROCEDURE SP_VIEW_STATIC_MEMBER_REFERER
AS
BEGIN
DECLARE @pos INT
DECLARE @delimiterLen INT
DECLARE @value VARCHAR(100)
DECLARE @delimiter VARCHAR(10)
SET @delimiter = ',';
SET @delimiterLen = LEN(@delimiter);
SET NOCOUNT ON;
create table #temp(item int)
DECLARE isReferer_Cursor CURSOR FOR
select replace(isReferer, ' ', '') as isReferer from T_MEMBER where isReferer <> '';
OPEN isReferer_Cursor;
declare @isReferer varchar(100);
declare @data varchar(100);
FETCH NEXT FROM isReferer_Cursor
into @isReferer;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @data = @isReferer
WHILE LEN(@data) > 0
BEGIN
SET @pos = CHARINDEX(@delimiter, @data)
IF (@pos = 0)
BEGIN
INSERT INTO #temp (item) VALUES (cast(@data as int))
break;
END
else if (@pos > 0)
begin
SET @value = SUBSTRING(@data, 0, @pos)
SET @data = SUBSTRING(@data, @pos+@delimiterLen, LEN(@data)-@pos )
INSERT INTO #temp (item) VALUES (cast(@value as int))
continue;
end
END
FETCH NEXT FROM isReferer_Cursor into @isReferer;
END;
CLOSE isReferer_Cursor;
DEALLOCATE isReferer_Cursor;
SELECT item, COUNT(*) as itemCount FROM #temp group by item ORDER BY item asc
END
GO
내용 :
isReferer isReferer_etc
1 NULL
2, 6 NULL
3 NULL
2, 7 NULL
1, 4, 5 NULL
1, 2, 3, 8 NULL
9, 10 인터넷
6, 10 지인 소개
//////////////////////////////////
t_member 라는 테이블에 isReferer, isReferer_etc 컬럼을 두고, 회원가입시 회원가입 경로를 체크하는값을 isReferer 에 넣었다면...
해당 가입경로를 group by 하여, 가입경로별 갯수 파악하기 위함.
결과
1 11
2 22
3 33
4 31
5 12
6 331
7 3
8 55
9 13
10 555
예제 소스 파일 :
출처 :
'쿼리_MSSQL' 카테고리의 다른 글
MSSQL 랜덤 추출 후, 순차번호 입력하기 ( newid(), Row_number() 사용) (0) | 2017.11.06 |
---|---|
mssql SSMS 쿼리문 이쁘게 조정하는 툴 (0) | 2017.11.02 |
mssql 이번주 시작일, 종료일 (0) | 2017.01.04 |
mssql 초성검색 function 만들기 (0) | 2016.12.28 |
mssql 재귀쿼리 기본, 트리구조 (0) | 2016.11.30 |