본문 바로가기
  • [성공하는 개발자] - Developer

DataBase50

[MSSQL] IIF 함수 사용법 (CASE, DECODE) 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, '미입력'.. 2022. 4. 15.
[MSSQL] ISNULL 함수 사용법 (NVL, NVL2, IFNULL) 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 급여(sa.. 2022. 4. 12.
[MSSQL] CHOOSE 함수 사용법 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.. 2022. 4. 12.
[MSSQL] MERGE 문 사용법 (DUAL, UPDATE와 INSERT를 한번에) MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을 사용하여 UPDATE나 INSERT로 분기하는 로직을 작성해야 하는 번거로움이 있다. MERGE 문의 경우 단일(한개의) 테이블에 UPDATE 또는 INSERT를 하는 경우 많이 사용하지만, 두개의 테이블을 비교하거나 서브 쿼리의 결과에 따라서 UPDATE, INSERT 작업이 가능하다. | 단일 테이블 사용법 (DUAL) 오라클에서는 DUAL이라는 dummy 테이블을 USING 절에 사용하면 단일 테이블 작업이 간단하지만, MSSQL에서는 DUAL 테이블이 없기 때문에 du.. 2022. 4. 12.