DECLARE @InStr VARCHAR(500)
DECLARE @Position INT --문자 자를 기준 위치
DECLARE @GubunPosition INT --문자 찾은 위치
DECLARE @TmpSysId VARCHAR(20) --시스템 아이디
DECLARE @StrColumns VARCHAR(4000) --가변적 문자열 컬럼
SET @InStr = '''ABC'',''BBB'',''EEE'''
SET @Position = 1
SET @GubunPosition = 1
SET @StrColumns = ''
--시스템 아이디가 가변적으로 들어 오기 때문에
--컬럼 문자열을 만들어 준다.
WHILE(@GubunPosition > 0)
BEGIN
SET @GubunPosition = CHARINDEX(',', @InStr, @Position) --콤마 위치 찾기
IF @GubunPosition = 0
BEGIN
--print 'last : ' + right(@InStr, len(@InStr)-@Position+1)
SET @TmpSysId = RIGHT(@InStr, len(@InStr)-@Position+1) --콤마가 없는 경우 마지막 까지 자른다.
END
ELSE
BEGIN
--print substring(@InStr, @Position, @GubunPosition - @Position)
SET @TmpSysId = substring(@InStr, @Position, @GubunPosition - @Position) --콤마까지를 자른다.
END
SET @Position = @GubunPosition + 1
SET @StrColumns = @StrColumns + ',ISNULL(MAX(CASE WHEN SysID = '+ @TmpSysId + ' THEN CNT END),0) AS ' + REPLACE(@TmpSysId, '''', '') --컬럼 문자열 만들기
END
print '@StrColumns : '+@StrColumns
'프로그램 경험 > Database' 카테고리의 다른 글
[SqlServer] 테이블에 컬럼 추가 및 수정 (0) | 2012.11.15 |
---|---|
[SqlServer] 각 테이블별 행 개수 집계 (0) | 2012.11.14 |
[SqlServer] SP 등 오브젝트 안에서 키워드 찾기 (0) | 2012.09.07 |
[SqlServer] DateTime 필드 조회시 주의점 (0) | 2012.08.08 |
[SqlServer] 날짜 함수 (0) | 2012.08.08 |