본문 바로가기

Database/Oracle8

[Oracle] GREATEST, LEAST 함수 / 최댓값, 최솟값 구하기 여러 값들 중에서 최댓값, 최솟값을 구할 수 있는 GREATEST, LEAST 함수에 대해 알아보겠습니다. MAX, MIN 함수도 최댓값, 최솟값을 구하는 함수이지만 차이점이 있습니다. MAX, MIN 함수는 하나의 컬럼의 값 중 최댓값, 최솟값을 구하는 함수이고, GREATEST, LEAST 함수는 여러 컬럼의 값을 비교하여 최댓값, 최솟값을 구하는 함수입니다. GREATEST GREATEST 함수는 최댓값을 구하는 함수로 인자 값들 중 가장 큰 값을 반환합니다. 형식 숫자 비교 SELECT GREATEST(1, 23, 45, 67) FROM DUAL -- 결과 : 67 문자 비교 문자를 비교할 때는 ASCII 코드 값으로 변환하여 값을 비교합니다. SELECT GREATEST('A', 'B', 'C'.. 2022. 11. 16.
[Oracle] 여러 행 SELECT하여 INSERT 하기 / INSERT INTO SELECT 문 데이터를 INSERT할 때 INSERT문 하나당 한 행의 데이터가 들어갑니다. DB에 많은 데이터를 넣기 위해서 INSERT문을 반복해서 하곤 했습니다. INSERT문 형식 INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ...) SELECT문을 이용하여 여러 행의 데이터를 한 번에 INSERT할 수 있는 방법이 있습니다. INSERT INTO SELECT문을 이용하면 조회한 모든 행을 한 번에 INSERT할 수 있습니다. INSERT INTO SELECT문 형식 INSERT INTO 테이블명(컬럼1, 컬럼2, ...) SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건 주의할 점은 INSERT문과 마찬가지로 컬럼의 개수와 타입을 맞춰줘야 한다는 것.. 2022. 10. 6.
[Oracle] 몫, 나머지 구하기 (/, MOD, FLOOR()) / 몫 구하기 오라클에서 몫을 구할 때는 /를 이용하여 나누기 연산을 하여 구합니다. 예시 SELECT 7/3 FROM DUAL--2.33333333333333 SELECT 6/3 FROM DUAL--2 SELECT 16/3 FROM DUAL--5.33333333333333 만약 정수인 몫을 구하고 싶다면 내림 함수인 FLOOR() 함수를 사용하면 됩니다. 예시 SELECT FLOOR(7/3) FROM DUAL--2 SELECT FLOOR(16/3) FROM DUAL--5 MOD() 나머지 구하기 나머지는 프로그래밍 언어와 달리 %로 구할 수 없고, MOD() 함수를 이용하여 구합니다. 기본형식 MOD() 함수는 인자가 2개이며, a를 b로 나눈 나머지를 구합니다. 예시 SELECT MOD(7,3) FR.. 2022. 9. 30.
[Oracle] 올림 함수 CEIL() / 내림 함수 FLOOR() / 반올림 함수 ROUND() Oracle에서 제공하는 올림, 내림, 반올림 함수가 있습니다. CEIL() 올림 함수 CEIL(n)은 n보다 크거나 같은 정수 중 가장 작은 수를 반환합니다. 다시 말해 n이 정수면 n을 반환하고, 소수면 소수점 첫 번째 자리에서 올림한 정수를 반환합니다. 예시 SELECT CEIL(12) FROM DUAL--12 SELECT CEIL(12.34) FROM DUAL--13 SELECT CEIL(12.78) FROM DUAL--13 FLOOR() 내림 함수 FLOOR(n)는 n보다 작거나 같은 정수 중 가장 큰 수를 반환합니다. 즉 소수점 이하를 버림한 정수를 반환합니다. 예시 SELECT FLOOR(12) FROM DUAL--12 SELECT FLOOR(12.34) FROM DUAL--12 SELECT.. 2022. 9. 29.
[Oracle] ORDER BY NULLS FIRST, NULLS LAST / NULL값 정렬하기 Oracle에서는 컬럼에 대하여 정렬 시 null 값은 마지막에 출력됩니다. 반대로 DESC로 내림차순 정렬을 하게 되면 처음에 출력됩니다. ORDER BY 할 때 NULLS FIRST, NULLS LAST 키워드를 사용하면 null이 출력되는 위치를 변경할 수 있습니다. 예시 ASC 정렬 SELECT * FROM TEMP ORDER BY CNT ASC 정렬 - NULLS FIRST SELECT * FROM TEMP ORDER BY CNT NULLS FIRST ASC 정렬 - NULLS LAST SELECT * FROM TEMP ORDER BY CNT NULLS LAST ASC 정렬만 했을 때와 결과가 같습니다. DESC 정렬 SELECT * FROM TEMP ORDER BY CNT DESC DESC 정.. 2022. 9. 29.