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문장을 작성할 수 있습니다.