본문 바로가기

반응형

프로그래밍/MSSQL

(76)
[MSSQL] 다중 칼럼 PIVOT 처리 (복수개의 열 행렬 변환) 복수 칼럼 PIVOT 처리 먼저, 기본 PIVOT에 대해 간단히 알아보자 SELECT [A], [B], [C], [D] FROM TBL_COMPANY_STATS PIVOT(SUM(CLIENT_CNT) FOR COMPANY IN ([A], [B], [C], [D])) AS PVT 이렇게 PIVOT 함수를 이용해서 행과 열을 바꿔줬다. ※ PIVOT에 대해 더 자세히 알고 싶다면 아래의 글들을 참고하세요. [프로그래밍/MSSQL] - [MSSQL] PIVOT, UNPIVOT (행렬 변환) [MSSQL] PIVOT, UNPIVOT (행렬 변환) 행렬 변환 함수 PIVOT, UNPIVOT PIVOT 행렬 변환 SELECT 컬럼명 FROM 테이블명 PIVOT([집계함수]([집계컬럼명]) FOR [대상컬럼명] IN..
[MSSQL] TRIM/RTRIM/LTRIM 문자열 공백 및 지정 문자 제거 TRIM 문자열의 시작 또는 끝에서 공백 문자 및 특정 문자를 제거 TRIM(문자열) TRIM(지정문자 FROM 문자열) 문자열의 양쪽에서 공백 문자를 제거 SELECT TRIM(' 꽁쥐 ') AS 'TRIM' SELECT RTRIM(' 꽁쥐 ') AS 'RTRIM' SELECT LTRIM(' 꽁쥐 ') AS 'LTRIM' 문자열의 양쪽에서 지정 문자를 제거 1. 한 개 지정 문자 제거 SELECT TRIM('.' FROM '. 꽁쥐 .') AS 'result' SELECT TRIM('.' FROM '.....꽁쥐.....') AS 'result' '.' 문자를 FROM절 뒤에 문자열 시작 또는 끝에서 제거한다. 첫 번째의 경우 양 사이드의 '.'만 제거되고 그 외 공백은 남아있게 되어, 결괏값은 ' 꽁..
[MSSQL] GETDATE 날짜함수 (YEAR, MONTH, DAY) GETDATE 오라클에서 SYSDATE가 있다면, MSSQL에서는 GETDATE 함수로 현재 날짜, 시간을 가져올 수 있다. SELECT GETDATE() 현재 날짜의 년도, 월, 일, 시간 SELECT YEAR(GETDATE()) AS 년도, MONTH(GETDATE()) AS 월, DAY(GETDATE()) AS 일, CONVERT(TIME,GETDATE()) AS 시간 GETDATE() 외 다양한 날짜 함수들 SELECT SYSDATETIME() UNION ALL SELECT SYSDATETIMEOFFSET() UNION ALL SELECT SYSUTCDATETIME() UNION ALL SELECT CURRENT_TIMESTAMP UNION ALL SELECT GETUTCDATE() [MSSQL]..
[MSSQL] SELECT DISTINCT가 지정된 경우에는 ORDER BY 항목이 SELECT 목록에 나타나야 합니다. SELECT DISTINCT ORDER BY 절 사용해서 원하는 결과를 뽑아내 보자 위와 같이 이름과 나이 필드로 구성된 테이블이 있다. [목표] 이름 필드의 값에서 중복을 제거하고 결과를 뽑아내려고 한다. 단, 이때 정렬 기준은 나이순으로 한다. SELECT DISTINCT [name] FROM TABLE_A 중복이 제거된 결과가 나왔지만.. 정렬이 나이 순서가 아닌 이름 순서로 되어있다. SELECT DISTINCT [name] FROM TABLE_A ORDER BY [age] ASC 정렬을 위해 ORDER BY 절을 추가해봤는데 다음과 같은 오류 메시지를 뱉어냈다. SELECT DISTINCT가 지정된 경우에는 ORDER BY 항목이 SELECT 목록에 나타나야 합니다. 하지만 ORDER BY 항목..
[MSSQL] QUOTENAME 구분 식별자 QUOTENAME 입력 문자열이 유효한 SQL Server 구분 식별자가 되도록 구분 기호가 추가된 유니코드 문자열을 반환한다. 문자열을 대괄호, 따옴표, 괄호 등으로 묶어주려할 때 사용하는 함수이다. QUOTENAME(문자열, [구분자]) SELECT QUOTENAME('abc') SELECT QUOTENAME('abc','''') SELECT QUOTENAME('abc', '()') 실전 예제 1. 동적 쿼리문에서 테이블명 혹은 컬럼명을 대괄호로 묶어줘야 하는 경우 (ex. 테이블명 혹은 컬럼명에 띄어쓰기가 들어간 경우, 숫자로 시작하는 경우 등등) DECLARE @columnName NVARCHAR(255) = 'item details' DECLARE @tableName NVARCHAR(100) =..

반응형