아래의 내용은 What's New in SQL Server 2012를 정리한 것입니다.
String Function
CONCAT
문자열 또는 모든 연산에서 NULL과 연산이 될 경우 결과는 NULL이 된다.
하지만 모든 쿼리 문자열에서 이런 형태를 구현할려면 ISNULL('문자열', '')로 처리를 해야 한다.
그래서 CONCAT이 나온 것 같다.
CREATE TABLE #Customer
(
FirstName VARCHAR(30) NULL
, MiddleName VARCHAR(30) NULL
, LastName VARCHAR(30) NULL
)
GO
INSERT INTO #Customer
VALUES
('Rachel', 'Jane', 'Clements')
, ('Rachel', NULL, 'Clements')
GO
SELECT FirstName + ' ' + MiddleName + ' ' + LastName
FROM #Customer
SELECT ISNULL(FirstName, '') + ' ' + ISNULL(MiddleName, '') + ' ' + ISNULL(LastName, '')
FROM #Customer
SELECT CONCAT(FirstName + ' ', MiddleName + ' ', LastName)
FROM #Customer
FORMAT
드디어 format 함수가 나왔다. C나 C# 등의 언어를 사용하시던 분들은 이 부분이 정말 필요 했을 것이다.
이전에는 여러 가지 방법으로 고생해서 만들었지만 이제는 간단하게 FROMAT 함수를 사용하면 될 것 같다.
이 함수는 .NET Framework의 함수이므로 .NET Framework가 설치 되어 있어야 사용할 수 있다.
문자열 포맷도 String.Format의 형태와 동일 하다. 하지만 파라미터 형태의 인자는 아니라서 여러 값을 넣을 수는 없다.
DECLARE @d DATETIME = GETDATE();
DECLARE @m INT = 16;
SELECT FORMAT( @d, 'dd/MM/yyyy' , 'ko-KR') AS Result -- 날짜 형식
SELECT FORMAT( @m, 'X' , 'ko-KR') AS Result -- 16진수 형식
SELECT FORMAT( @m, 'X4' , 'ko-KR') AS Result -- 16진수 형식(4자리 형태)
Datetime Function
EOMONTH
ERP 시스템이나 기간을 사용할대 월 단위의 조회가 많은데
지금까지는 보통 DATEADD로 처리를 했다 .
2012부터는 함수를 사용하면 될 것 같다.
DECLARE @d DATETIME = GETDATE();
SELECT @d, EOMONTH(@d), EOMONTH(@d, 1), EOMONTH(@d, 2)
DATEFROMPARTS
숫자로 날짜 형태를 만드는 함수다.
이전에는 '/'를 문자열로 조합했지만 이제 간단히 C#의 생성자 처럼 사용 할 수 있는 함수가 제공된다.
DECLARE @y INT, @m INT, @d INT
DECLARE @ymd DATETIME
SET @y = 2013
SET @m = 1
SET @d = 29
SET @ymd = DATEFROMPARTS(@y, @m, @d)
SELECT @ymd, DATEFROMPARTS(@y, @m, @d)
'Database > MS SQL' 카테고리의 다른 글
데이터/프로시져 캐시 초기화 (1) | 2013.04.02 |
---|---|
procedure에 종속된 잘못된 테이블 찾기 (1) | 2013.02.26 |
저장프로시져 안에 특정 문자 찾기 (0) | 2013.01.15 |
SSMS에서 실행(F5) 후 한글 입력으로 자동 변경 문제 (0) | 2013.01.15 |
Procedure에서 PRINT(출력) 바로 내보내기 (0) | 2012.02.16 |