전체
- SQL Unplugged 2012 : Showcase 2012.03.23
- SQL Server 2012로 업그레이드 지원되는 버전 2012.03.23
- [SQL2012] 첫 인수에 따라 값을 고르는 CHOOSE 2012.02.27
- [SQL2012] 월의 마지막을 구하는 EOMONTH 2012.02.17
- [SQL2012]CONVERT할 때 ERROR 대신 NULL을 반환하는 TRY_CONVERT 2012.02.17
SQL Unplugged 2012 : Showcase
SQL Server 2012로 업그레이드 지원되는 버전
MSDN에 있는 자료 중 버젼 업그레이드에 대한 자료 발췌해 봅니다.
업그레이드할 버전 |
지원되는 업그레이드 경로 |
SQL Server 2005 SP4 Enterprise | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2005 SP4 Developer | SQL Server 2012 Developer |
SQL Server 2005 SP4 Standard | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2005 SP4 Workgroup | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2012 Web | |
SQL Server 2005 SP4 Express, | SQL Server 2012 Enterprise |
SQL Server 2005 SP4 Express with Tools 및 | SQL Server 2012 Business Intelligence |
SQL Server 2005 SP4 Express with Advanced Services | SQL Server 2012 Standard |
SQL Server 2012 Web | |
SQL Server 2012 Express | |
SQL Server 2008 SP2 Enterprise | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2008 SP2 Developer | SQL Server 2012 Developer |
SQL Server 2008 SP2 Standard | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2008 SP2 Web | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2012 Web | |
SQL Server 2008 SP2 Workgroup | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2012 Web | |
SQL Server 2008 SP2 Express, | SQL Server 2012 Enterprise |
SQL Server 2008 SP2 Express with Tools 및 | SQL Server 2012 Business Intelligence |
SQL Server 2008 SP2 Express with Advanced Services | SQL Server 2012 Standard |
SQL Server 2012 Web | |
SQL Server 2012 Express | |
SQL Server 2008 R2 SP1 Datacenter | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2008 R2 SP1 Enterprise | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2008 R2 SP1 Developer | SQL Server 2012 Developer |
SQL Server 2008 R2 SP1 Standard | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2008 R2 SP1 Web | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2012 Web | |
SQL Server 2008 R2 SP1 Workgroup | SQL Server 2012 Enterprise |
SQL Server 2012 Business Intelligence | |
SQL Server 2012 Standard | |
SQL Server 2012 Web | |
SQL Server 2008 R2 SP1 Express, | SQL Server 2012 Enterprise |
SQL Server 2008 R2 SP1 Express with Tools 및 | SQL Server 2012 Business Intelligence |
SQL Server 2008 R2 SP1 Express with Advanced Services | SQL Server 2012 Standard |
SQL Server 2012 Web | |
SQL Server 2012 Express
|
쉽게 말씀드려서,
SQL Server 2000 에서 SQL Server 2012로 업그레이드 불가능합니다.
즉, 두 번에 걸쳐 업그레이드를 해야 한다는 거죠.
자세한 사항은 아래 URL을 참고하세요.
http://msdn.microsoft.com/ko-kr/library/ms143393(v=sql.110).aspx
[SQL2012] 첫 인수에 따라 값을 고르는 CHOOSE
SQL Server 2012 이전 버젼에서 여러개의 값 중 하나를 고르려면 CASE 문을 열심히 써야 했습니다.
하지만, CHOOSE 가 나오면서 매우 간략해졌는데요...
-- SQL Server 2012 이전
DECLARE @CODE_NO INT SET @CODE_NO = 3 SELECT CASE @CODE_NO WHEN 1 THEN '서울' WHEN 2 THEN '대전' WHEN 3 THEN '대구' WHEN 4 THEN '부산' WHEN 5 THEN '광주' ELSE 'NO DATA' END AS 'AREA' |
-- SQL Server 2012
DECLARE @CODE_NO INT SET @CODE_NO = 3 SELECT ISNULL(CHOOSE(@CODE_NO, '서울', '대전', '대구', '부산', '광주'),'NO_DATA') AS 'AREA' |
결과는 동일하게 대구로 나옵니다.
간결해졌죠?
여기서 주의할 점은 다른 일반적인 사항과 달리 INDEX가 1부터 시작한다는 것입니다.
또한, INDEX 배열 내에 없으면 NULL값을 반환합니다.
그리고, 다소 아쉬운 점은 무조건 INDEX값이 INT여야 한다는 것입니다.(INT가 아닐 경우 자동 CASTING)
자세한 내용은 아래를
http://msdn.microsoft.com/ko-kr/library/hh213019(v=sql.110).aspx
IIF 부분도 한 번 참고해 보시기 바랍니다.
http://www.sqler.com/index.php?mid=bColumn&document_srl=472992
http://msdn.microsoft.com/ko-kr/library/hh213574(v=sql.110).aspx
참고로 이것은 RC0 기준입니다.
[SQL2012] 월의 마지막을 구하는 EOMONTH
안녕하세요? SQL Frontier 3기 윤선식입니다.
SQL Server 2012에는 월의 마지막을 구하는 EOMONTH라는 날짜함수를 제공합니다.
성대중님께서 이야기하신 http://www.sqler.com/474836#comment_475091 부분에 대한 부가설명이라고 보시면 됩니다.
만약 이 달의 마지막 날을 구하고자 한다면?
만약 두 달 뒤의 마지막 날을 구하고자 한다면?
SQL Server 2012 이전에는 다음과 같이 해야 했습니다.
DECLARE @DT1 VARCHAR(10); DECLARE @DT2 DATETIME; SET @DT1 = '2012-02-20'; SET @DT2 = CONVERT(DATETIME, @DT1); SELECT CONVERT(VARCHAR(10),DATEADD(d,-1,DATEADD(m,1,CONVERT(DATETIME,LEFT(@DT1,8) + '01'))),120) AS 'EOMONTH(@DT1)', CONVERT(VARCHAR(10),DATEADD(d,-1,DATEADD(m,1,CONVERT(DATETIME,CONVERT(VARCHAR(8),@DT1) + '01'))),120) AS 'EOMONTH(@DT2)', CONVERT(VARCHAR(10),DATEADD(d,-1,DATEADD(m,3,CONVERT(DATETIME,LEFT(@DT1,8) + '01'))),120) AS 'EOMONTH(@DT1,2)', CONVERT(VARCHAR(10),DATEADD(d,-1,DATEADD(m,3,CONVERT(DATETIME,CONVERT(VARCHAR(8),@DT1) + '01'))),120) AS 'EOMONTH(@DT2,2)' |
흠… 그다지 쉽지 않네요.
하지만 SQL Server 2012에서는 EOMONTH를 사용해서 다음과 같이 간단하게 처리할 수 있습니다.
DECLARE @DT1 VARCHAR(10); DECLARE @DT2 DATETIME; SET @DT1 = '2012-02-20'; SET @DT2 = CONVERT(DATETIME, @DT1); SELECT EOMONTH(@DT1) AS 'EOMONTH(@DT1)', EOMONTH(@DT2) AS 'EOMONTH(@DT2)', EOMONTH(@DT1,2) AS 'EOMONTH(@DT1,2)', EOMONTH(@DT2,2) AS 'EOMONTH(@DT2,2)' |
참 쉽죠잉?
상세내역은 다음 URL을 참고하세요.
http://msdn.microsoft.com/ko-kr/library/hh213020(v=sql.110).aspx
참고로 이것은 RC0 기준입니다.
[SQL2012]CONVERT할 때 ERROR 대신 NULL을 반환하는 TRY_CONVERT
SQL Server 2012에는 TRY_CONVERT라는 변환 함수를 제공합니다.
이 TRY_CONVERT는 CONVERT와 비슷하지만,
CONVERT를 하지 못해도 오류를 내지 않고 NULL로 반환하는 특성을 가집니다.
실험 1.
CONVERT 이용
DECLARE @INPUT1 VARCHAR(100) DECLARE @INPUT2 VARCHAR(100) SET @INPUT1 = '100,2'; SET @INPUT2 = '100.3'; SELECT CONVERT(FLOAT,@INPUT1) AS INPUT1, CONVERT(FLOAT,@INPUT2) AS INPUT2 |
결과.
실험 2. TRY_CONVERT 로 실행
DECLARE @INPUT1 VARCHAR(100) DECLARE @INPUT2 VARCHAR(100) SET @INPUT1 = '100,2'; SET @INPUT2 = '100.3'; SELECT TRY_CONVERT(FLOAT,@INPUT1) AS INPUT1, TRY_CONVERT(FLOAT,@INPUT2) AS INPUT2 |
결과.
상세내역
http://msdn.microsoft.com/ko-kr/library/hh230993(v=sql.110).aspx
참고로 이것은 RC0 기준입니다.
물론 정확한 데이터 처리를 위해서는 검증이 필요하지만,
필요에 따라 사용 가능할 듯 합니다.