오라클

SQL

[SQL] CASE-WHEN, 조건에 따라 출력하기

저장된 값에 대해 조건에 따라 다른 출력을 해야할 때가 있다. CASE-WHEN 표현식은 오라클과 MySQL 간 차이점이 없기 때문에 유용하게 사용할 수 있다. CASE-WHEN 절 사용하기 더보기 CASE WHEN 조건 THEN 조건이 참일 때 실행 ELSE 조건이 거짓일 때 실행 END 사용 방법은 위와 같으며 예제를 적용해보자 나이가 20살 이상이면 '성인', 아니면 '학생' 출력하기 SELECT AGE, CASE WHEN AGE>=20 THEN '성인' ELSE '학생' END 분류 FROM CUSTOMERS; - 실행 결과 USTOMERS 테이블에 AGE라는 필드가 위와 같을 때, 분류는 CASE WHEN 절로 출력한 결과이다. CASE WHEN 절은 꼭 END로 끝내줘야하며 뒤에 별칭을 적용할..

SQL

[Oracle/MySQL] ROWNUM과 LIMIT, 행 수 제한하기

업무 중에 가끔씩 가장 최신 데이터 1개만 출력하는 등의 쿼리를 짠다. 그와 관련해서 ROWNUM과 LIMIT에 대해 정리해보려한다. Oracle에서 행 수 제한하기 ROWNUM으로 특정 개수 데이터 조회하기 SELECT * FROM CUSTOMERS WHERE ROWNUM=2; WHERE 절에서 ROWNUM을 사용하여 데이터 개수를 제한할 수 있다. 단, '=' 연산이기 때문에 조회한 데이터가 1개밖에 없을 때는 결과가 출력되지 않는다. 만약에 보고싶다면 '

SQL

[Oracle/MySQL] CONCAT, 문자열 합치기

문자열을 합치는 예로는 주소가 있다. 주소는 데이터가 나뉘어서 저장되기도 하는데 출력할 때는 문자열을 합쳐야하고 이는 CONCAT으로 해결할 수 있다. CONCAT을 사용하는 방법은 Oracle과 MySQL이 동일하나, 약간의 차이점이 있다. Oracle에서 문자열 합치기 CONCAT으로 문자열 합치기 SELECT CONCAT(CONCAT('문자열',' '), '합치기') FROM DUAL; -- 문자열 합치기 CONCAT을 사용해서 문자열을 더할 수 있지만, 매개변수가 2개로 제한되어있다. 그래서 추가적인 연산을 하려면 CONCAT 함수를 연달아 사용해야한다. ||으로 문자열 합치기 ( Oracle만 가능 ) SELECT "문자열" || " " || "합치기" FROM DUAL; -- 문자열 합치기 위..

SQL

[Oracle/MySQL] 날짜 연산, 이전 달 출력하기

오라클을 사용하는 업무 중에 없는 날짜를 조회에서 SQL 에러가 발생했던 일이 있었다. 하여 오늘은 이에 대한 내용을 정리하려 한다. Oracle에서 날짜 연산하기 INTERVAL 로 이전 달 출력하기 ( YYYYMM 포맷 ) SELECT TO_CHAR(SYSDATE - (INTERVAL '1' MONTH),'YYYYMM') FROM DUAL; -- ORA-01839 에러 발생 SELECT TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'YYYYMM'),'YYYYMM') - (INTERVAL '1' MONTH),'YYYYMM') FROM DUAL; -- 202304 위에서 에러가 발생하는 이유는 다음과 같다. 현재 날짜는 5월 31일이고 1 Month를 빼면 4월 31을 찾게되며 없는 날짜를 ..

SQL

[Oracle/MySQL] NVL과 IFNULL, COALESCE로 널 값 처리하기

널 값인 경우에 null을 그대로 출력할 수는 없으니 다른 값으로 출력하기 위한 함수가 존재하는데, 오늘은 그에 대해서 정리를 해보려 한다. 밑에 DEPARTMENT 테이블을 이용해 알아보자. deptno name location 1 Finance New York 2 Development - 현재, deptno=2이고 name='Development'인 데이터의 location이 널값이다. Oracle에서 널 값 처리하기 오라클에서는 NVL을 통해 널값을 처리할 수도 있고, 값이 있는 경우 원하는 값으로 대체하여 출력할 수도 있다. NVL(column명, 'null일 때 출력값') 로 널 값 처리하기 SELECT name,location,NVL(location,'none') FROM departments..

limnj
'오라클' 태그의 글 목록