Data Base_Oracle/SQL
SQL 중첩함수, 동적 매개변수 활용
pathas
2020. 1. 3. 00:10
중첩함수
- 함수내부에 또 다른 함수가 있는 경우
- 안쪽함수부터 실행
- 그룹함수에서 많이 사용됨
▶ 사원 이름에 'O'가 몇 번째에 들어가는 지 조회
[ SQL> select ename,instr(ename, upper('o')) from emp; ]
ENAME | INSTR(ENAME, 'O') |
---|---|
SMITH | 0 |
JONES | 2 |
SCOTT | 3 |
동적 매개변수 활용
▶ emp테이블에서 사원번호는 반드시 출력하고, 나머지 필드와 조건식은 동적으로 입력을 받아서 출력
[ SQL> select empno, &column_name from emp where &condition;
column_name의 값을 입력하십시오: ename
conition의 값을 입력하십시오: ename=upper('allen') ]
EMPNO | ENAME |
---|---|
7499 | ALLEN |
※ 매개변수는 SQL 문장 어디에나 쓰일 수 있음
※ 동적 매개변수를 설정할 때 주의할 점 ※*
- 숫자데이터 => &변수명
- 문자, 날짜데이터 => '&변수명'
▶ 입력하는 이름에 맞는 직원의 이름, 급여, 보너스를 출력
[ SQL> select ename, sal, comm from emp where ename=upper('&ename');
ename의 값을 입력하십시오 : allen ]
§ 강조 부분을 다음과 같이 작성할 수 있음 : [ lower(ename)='&ename'; ]
ENAME | SAL | COMM |
---|---|---|
ALLEN | 1600 | 300 |
중첩함수와 동적 매개변수를 활용하면 편리하고 효과적인 SQL문장을 작성할 수 있습니다.