일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ANSI JOIN
- Eclipse
- Dynamic Programming
- 그대로 출력하기
- 데이터길이
- 2156
- DP
- 백준
- 문자열
- 오라클
- 반복문
- Algorithm
- darkest dark
- oracle
- 10951
- 입출력
- 소숫점처리
- algoritm
- 알고리즘
- Java
- Database
- db
- JOIN
- 자바
- select
- 동적계획법
- n x 2 타일링 2
- SQL
- 데이터베이스
- 변수
- Today
- Total
목록SQL (38)
Cracking Code
조건 변환문에서 저번 시간엔 CASE에 대해 알아보았습니다. 이번 시간에는 Oracle에서만 사용할 수 있는 DECODE 함수에 대해 알아보겠습니다. DECODE DECODE(column | expression, search1, result1 [, search2, result2, ... ,] [, default) DECODE 함수는 기본적으로 숫자연산에 사용되는 함수입니다. column에 매치되는 값을 찾아 연산을 한 뒤에 출력합니다. 사원 테이블에서 사원의 번호, 이름, 급여, 급여의 배수를 한 값 직업이 ANALYST인 경우 급여에 1.1배 CLERK인 경우 1.2배 MANAGER인 경우 1.3배 PRESIDENT인 경우 1.4배 SALESMAN일 경우 1.5배 나머지는 그대로 하여 출력해봅시다. S..
SQL에서도 다른 개발 언어와 같이 조건별로 데이터 리턴이 가능합니다. CASE WHEN THEN END와 DECODE 함수가 있습니다. 본문에선 CASE를 먼저 알아보도록 하겠습니다. CASE (ANSI) CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 ... WHEN comparison_exprn THEN return_exprn ELSE else_expr] END CASE는 일반 연산 시와 비교 연산 시에 따라 컬럼(expr)의 위치가 조금 바뀝니다. 예제로 알아보겠습니다. 사원 테이블에서 사원의 번호, 이름, 급여, 급여의 배수를 한 값 직업이 ANALYST인 경우 급여에 1.1배 CL..
SQL 함수로 데이터형 간에 변환을 이뤄주는 함수에 대해서 알아보겠습니다. 시작하기 전에 용어 정리 들어갑니다! 묵시적 형변환: DBMS에서 알아서 판단하고 자동으로 데이터형을 변환 명시적 형변환: 사용자가 어떤 형태로 데이터를 변환시킬지 명시하여 변환 1. TO_CHAR TO_CHAR(n | date, 'format') 숫자, 날짜, 문자열을 지정한 format의 VARCHAR2 문자열로 변환합니다. 예제로 알아보기 앞서서 포맷에 쓰이는 문자들을 알아볼까요? YYYY 년도를 숫자로 표시 YEAR 년도를 영문 표시 MM 월을 숫자로 표시 MONTH 월을 영문 표시 MON 월을 영문 3자리 표시 DY 요일을 영문 3자리, 한글 1자리 표시 DAY 요일을 영문, 한글로 표시 DD 일을 숫자로 표시 AM | ..
날짜를 인자로 받아 계산하여 결과를 리턴하는 날짜 관련 함수를 알아보겠습니다. 함수를 알아보기 전에 앞서 간단한 날짜 출력문을 알아보겠습니다. SYSDATE: 현재 날짜 출력 SYSTIMESTAMP: 현재 날짜, 시각 출력 각 컬럼에 현재 날짜 및 날짜와 시간이 잘 표시됩니다. 주의) 날짜 데이터는 그 안에 현재의 연, 월, 일, 시간 모두 포함되어 있습니다. 그 데이터를 기반으로 미리 설정된 날짜 형식에 따라 출력됩니다. 그럼, 이 날짜 데이터들을 활용한 함수들에 대해 알아볼까요? 1. MONTHS_BETWEEN MONTHS_BETWEEN(date1, date2) date1과 date2의 월간 차이를 계산하여 출력합니다. 사원 테이블의 부서 번호가 10인 사원들이 몇 달 근무했는지 알아볼까요? SELE..
숫자 데이터형의 소숫점 자리를 처리할 수 있는 함수에 대해 알아보겠습니다. 1. CEIL 주어진 숫자보다 크거나 같은 최소의 정수를 리턴합니다. CEIL(column | expression) CEIL 함수에 10.1을 인자로 받아 출력해봅니다. SELECT CEIL(10.1) FROM DUAL; 10.1 보다 크거나 같은 최소의 정수인 11이 출력되는 것을 확인할 수 있습니다. 2. FLOOR 주어진 숫자보다 작거나 같은 최대의 정수를 리턴합니다. FLOOR(column | expression) FLOOR 함수에 10.1을 인자로 받아 출력해봅니다. SELECT FLOOR(10.1) FROM DUAL; CEIL 과는 반대로 10.1 보다 작거나 같은 최대의 정수인 10이 출력되는 것을 확인할 수 있습니다..
문자열의 특정 문자열을 치환하는 함수를 소개합니다. REPLACE 문자열 안에 모든 특정 문자열을 치환해줍니다. REPLACE(column, 's1', 's2') column의 문자열 데이터의 모든 s1을 s2로 치환하여 출력해줍니다. 사원 테이블에서 사원의 이름과 직업, 그리고 직업의 A 문자를 $ 문자로 치환하여 출력해봅니다. SELECT ENAME, JOB, REPLACE(JOB, 'A', '$') FROM EMP; 사원들의 직업 문자열의 A 문자가 전부 $ 문자로 변경되어 출력되는 것을 확인할 수 있습니다.
데이터의 길이를 리턴해주는 LENGTH 함수를 소개합니다. CEIL LENGTH 함수는 데이터의 길이를 반환하여 사용자에게 알려줍니다. LENGTH(column or 's') 사원 테이블의 부서번호가 20인 사원의 번호, 이름, 이름의 길이, 급여, 급여의 자릿수를 출력해봅니다. SELECT EMPNO, ENAME, LENGTH(ENAME) 이름길이, SAL, LENGTH(SAL) 급여자릿수 FROM EMP WHERE DEPTNO = 20; 각 사원의 이름길이와 급여의 자릿수가 출력되는 것을 확인할 수 있습니다.
검색을 할때 공백을 제거하거나 문자를 지워 보다 많은 정보를 탐색할 수 있게 도와주는 함수를 소개합니다. 1. TRIM 문자열의 왼쪽 또는 오른쪽 또는 양쪽에 있는 공백 또는 지정 문자를 제거합니다. TRIM([{LEADING | TRAILING | BOTH} 'S' FROM] TABLE) 옵션에는 LEADING, TRAILING, BOTH가 있습니다. LEADING은 왼쪽, TRAILING은 오른쪽, BOTH는 양쪽의 공백이나 지정 문자의 반복을 제거합니다. 아무것도 입력하지 않으면 BOTH로 작동합니다. 인자로 문자열만 넣으면 양 옆의 공백을 제거합니다. 단, 다른 문자의 사이에 있는 문자는 제거하지 않습니다. 사원 테이블의 사원 번호가 7844인 사원의 번호, 직업, 직업의 왼쪽에서 S 문자 제거,..