2021년 3월 IT 세미나/컨퍼런스 일정 3월 6일(토) OKKYCON 2021 : 협업의 기술 13:00~17:00 온라인 | 유료 3월 8일(월) 2021-제3회 엔젤리더스포럼 16:00~17:30 온라인 3월 11일(목) 리얼리눅스 무료세미나: ARM아키텍쳐 알아야 하는 이유 20:00~21:00 온라인 3월 18일(목) [Ask Me Anything] FRONT1 AMA #6 w. 소프트뱅크벤처스 유영석 벤처파트너 19:00~20:30 마포 프론트원 20층 3월 23일(화) 2021년도 제2회 디지털비즈니스지원센터 "신입사원 프로젝트 조기 투입을 위한 글로벌 SW역량개발 Off-JT/OJT 교육실행 전략" 세미나 14:00~16:00 온라인 3월 24일(수) 스타트업포럼2021 : 포스트코로나 ..
SQL Server 2012 버전부터 FORMAT 함수가 추가되었다. 오라클에서는 TO_CHAR 함수를 사용하여 날짜 형식을 문자열로 쉽게 변환을 할 수 있고, MSSQL에서는 CONVER 함수를 사용하여 변환이 가능하지만 조금 아쉬운 면이 있었다. FORMAT 함수를 사용하여 오라클의 TO_CHAR 함수에서 가능했던 3가지 사용법을 소개한다. 날짜 문자열 변환 수치값 천단위 콤마 찍기 수치값 소수점 표시 날짜 문자열 변환 SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS result1 , FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS result2 오라클에서 날짜를 문자열로 변환하던 비슷한 형식으로 사용이 가능하다. SELECT FORMAT(..
SQL Server에서는 오라클에서 사용하는 ROWNUM은 사용할 수 없다. 그러나 TOP과 ROW_NUMBER 함수를 사용하여 비슷한 결과를 만들 수 있다. ROWNUM은 주로 아래의 2가지 경우에 많이 사용한다. 조회 개수를 제한하는 경우 조회 순번을 매기는 경우 조회 개수를 제한하는 경우 SELECT TOP(5) ename , job , sal FROM emp SELECT 절에 TOP(개수)를 사용하여 조회 개수를 제한할 수 있다. 오라클의 ROWNUM은 ORDER BY가 수행되기 전에 개수를 제한하므로 정렬이 적용되지 않지만, TOP은 SELECT 절에 있기 때문에 ORDER BY가 있을 경우 정렬 후 개수를 제한한다. 오라클 예시 : WHERE ROWNUM 2000 ROW_NUMBER 함수를..
SQL Server에서 그룹 함수로 집계된 데이터에서 소계, 합계를 쉽게 구하기 위해서는 ROLLUP를 사용하면 된다. 아래의 예제를 참고하면 쉽게 이해할 수 있다. ROLLUP은 2가지 사용방법이 있다. 어느 것을 사용하든 결과는 동일하다. 방법1 : GROUP BY ROLLUP(그룹컬럼) 방법2 : GROUP BY 그룹컬럼 WITH ROLLUP 방법1 : GROUP BY ROLLUP(그룹컬럼) SELECT job , deptno , SUM(sal) AS total_sal FROM emp WHERE job IN ('MANAGER', 'CLERK', 'SALESMAN') GROUP BY ROLLUP(job, deptno) 그룹 컬럼으로 지정된 모든 컬럼에 대하여 소계와 합계를 집계한다. 방법2 : GRO..
SQL Server에서는 조인을 할 때에는 안시 조인(ANSI JOIN) 사용을 권장한다. 아래에는 조인(INNER JOIN), 아우터 조인(LEFT OUTER JOIN, RIGHT OUTER JOIN), 크로스 조인(CORSS JOIN) 사용법을 정리하였다. INNER JOIN과 LEFT OUTER JOIN은 꼭 사용법을 숙지해야 하며, 나머지 부분은 개념만 이해하고 넘어가면 된다. 조인 (INNER JOIN) : 기준 테이블과 조인 테이블 모두 데이터가 존재해야 조회됨 아우터 조인 (OUTER JOIN) : 기준 테이블에만 데이터가 존재하면 조회됨 조인 (INNER JOIN) SELECT a.empno , a.ename , a.job , a.mgr , a.deptno , b.dname FROM emp..
아이폰 12부터 20W 고속 충전을 지원하게 되었다. 무선충기도 또한 고속을 지원하는 제품이 많이 판매되고 있지만, 아이폰 고속 충전의 최적화된 제품은 애플에서 판매하는 맥세이프(MagSafe)이다. 맥세이프는 크기도 작고 자성이 있어서 폰에 밀착되어 충전하기가 아주 편하다. 그러나 사용 중에 아주 큰 단전을 발견하게 되었다. 손이 찌릿찌릿한 전기 흐르는 느낌이 난다는 것이다. 정전기를 아주 잘 느끼는 타입이라 너무 신경 쓰여서 정전기를 방지하는 방법을 정리해 보았다. 방법1 : 맥세이프 젤리(TPU) 케이스를 이용하는 방법 방법2 : 접지가 가능한 어댑터를 이용하는 방법 맥세이프 젤리(TPU) 케이스를 이용하는 방법 여러가지 방법을 찾아보았지만 젤리 케이스를 이용한 방법을 추천한다. 젤리 케이스는 ..
SQL Server 2012 버전부터 IIF 함수가 추가되었다. CASE 문을 사용하면 쿼리문이 조금 복잡해지는 부분이 있는데 2가지의 값만 리턴이 필요하다면 IIF 함수가 조금 더 효율적일 수 있다. 오라클의 DECODE 함수처럼 조금 함축적으로 쿼리문을 작성할 수 있지만 MSSQL에 종속된 함수이다. IIF 함수는 참과 거짓 두 경우의 값만 리턴이 가능하다. DECLARE @score INT = 80 SELECT IIF(@score >= 70, '합격', '불합격') AS score 더 많은 조건식을 사용하기 위해서는 CASE 문을 사용해야 한다. IS NULL 등 다양한 조건식이 사용가능 하다. DECLARE @score INT = NULL SELECT IIF(@score IS NULL, '미입력'..
SQL Server에서는 NULL 값을 치환하기 위해서는 ISNULL 함수를 사용한다. 오라클에서 NVL 함수와 MySQL의 IFNULL 함수와 동일한 기능을 수행한다. 오라클의 NVL2와 동일한 함수는 없지만, IIF 함수 또는 CASE 문을 활용하여 비슷한 기능을 수행할 수 있으니 아래의 예제를 참고하면 도움이 될 수 있다. 숫자 NULL 치환 WITH emp AS ( SELECT 'JONES' AS ename, 3000 AS salary, NULL AS retire UNION ALL SELECT 'SCOTT' AS ename, NULl AS salary, 'Y' AS retire ) SELECT ename , salary , ISNULL(salary, 0) AS sal FROM emp 급여(sala..
SQL Server 2012 버전부터 CHOOSE 함수가 추가되었다. CHOOSE 함수는 첫 번째 인자의 인덱스에 해당하는 값을 리턴하는 함수이다. CASE 문으로도 비슷한 결과를 만들 수 있지만, 인덱스에 대한 단순 값을 반환할 경우 CHOOSE 함수를 사용하면 쿼리문이 조금 더 단순해질 수 있다. CHOOSE ( index, val_1, val_2 [, val_n ] ) SELECT CHOOSE(1, 'A', 'B', 'C') AS result1 , CHOOSE(2, 'A', 'B', 'C') AS result2 , CHOOSE(4, 'A', 'B', 'C') AS result3 첫번째 인자의 인덱스에 해당하는 순서의 값을 리턴한다. 인덱스에 해당하는 값이 없으면 NULL을 리턴한다. SELECT D..
MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을 사용하여 UPDATE나 INSERT로 분기하는 로직을 작성해야 하는 번거로움이 있다. MERGE 문의 경우 단일(한개의) 테이블에 UPDATE 또는 INSERT를 하는 경우 많이 사용하지만, 두개의 테이블을 비교하거나 서브 쿼리의 결과에 따라서 UPDATE, INSERT 작업이 가능하다. 단일 테이블 사용법 (DUAL) 오라클에서는 DUAL이라는 dummy 테이블을 USING 절에 사용하면 단일 테이블 작업이 간단하지만, MSSQL에서는 DUAL 테이블이 없기 때문에 dumm..