달력

22025  이전 다음

  • 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

1. SQL 함수

 제공되는 함수들은 기본적인 Query 문을 더욱 강력하게 해주고 데이터 값을 조작하는데 사용된다. 여러분은 단일 행 함수를 이용하여 문자, 숫자, 날짜 함수에 대해 살펴볼 뿐만 아니라 형을 전환하는 함수들에 대해서도 살펴본다.

 

1.1 SQL 함수의 특징 및 이점

 1) 데이터에 계산을 수행할 수 있다.

 2) 개별적인 데이터 항목을 수정할 수 있다.

 3) 행의 그룹에 대해 결과를 조작할 수 있다.

 4) 출력을 위한 날짜와 숫자 형식을 조절할 수 있다.

 5) 열의 자료형을 변환할 수 있다.

 

1.2 단일 행 함수(Single Row Function)

 이 함수는 단일 행에 대해서만 적용 가능하고 행별로 하나의 결과를 RETURN한다..

function_name   함수 명

column             데이터 베이스의 Column Name

expression         어떤 문자 스트링이거나 계산된 표현식

arg1, arg2         함수에 의해 사용될 수 있는 인수

 

1.2.1 단일 행 함수가 이용되는 곳

 1) 데이터에 대해 계산을 수행할 경우

 2) 각각의 데이터 항목을 변경할 경우

 3) 출력할 날짜 형식을 변경할 경우

 4) Column Data Type 을 변경할 경우

 

1.2.2 단일 행 함수의 종류

 1) 문자형 함수 : 문자를 입력 받고 문자와 숫자 값 모두를 RETURN 할 수 있다.

 2) 숫자형 함수 : 숫자를 입력 받고 문자를 RETURN 한다.

 3) 날짜형 함수 : 날짜형에 대해 수행하고 숫자를 RETURN 하는 MONTHS_BETWEEN 함수를 제외하고 모두 날짜 데이터형의 값을 RETURN한다.

 4) 변환형 함수 : 어떤 데이터형의 값을 다른 데이터형으로 변환한다.

 5) 일반적인 함수 : NVL, DECODE

 

1.2.3 단일 행 함수의 특징

 1) 질의에서 RETURN 되는 각각의 행에 대해 수행

 2) 행별로 하나의 결과를 RETURN

 3) 참조 시 사용한 데이터 형과 다른 데이터 형으로 결과를 RETURN 할 수 있다.

 4) 하나 이상의 인수를 필요로 한다.

 5) SELECT, WHERE, ORDER BY 절에서 사용할 수 있습니다.

 6) 함수를 중첩할 수 있습니다.

  ① 단일 행 함수들은 여러 LEVEL에 걸쳐 중첩 사용이 가능하다.

  ② 중첩된 함수들은 가장 하위 LEVEL에서 가장 상위 LEVEL 순으로 진행된다.

 

1.3 문자형 함수 (Character Function)

종류 

함수 

사용목적 

변환 함수 

LOWER 

알파벳 값을 소문자로 변환

UPPER 

알파벳 값을 대문자로 변환 

INITCAP 

첫번째 글자만 대문자로 변환 

 문자 조작 함수

CONCAT

두 문자열을 연결(합성) 

SUBSTE 

문자열 중 특정 문자 또는 문자열의 일부분을 선택 

LENGTH 

문자열의 길이를 구함 

INSTR 

명명된 문자의 위치를 구함 

LPAD 

왼쪽 문자 자리 채움 

RPAD 

오른쪽 문자 자리 채움

LTRIM 

왼쪽 문자를 지움 

RTRIM 

오른쪽 문자를 지움 

TRANSLATE 

특정 문자열을 대체 

REPLACE 

특정 문자열을 대신 

 

1.3.1 LOWER함수

 대소문자가 혼합되어 있거나 대문자인 문자열을 소문자로 변환 합니다.

 Syntax

LOWER( column | expression) 

사용예 

LOWER('MANAGER') → manager 

 

문제 2) EMP 테이블에서 scott의 정보를 사원번호, 성명, 담당업무, 부서번호를 출력하여라.

 

1.3.3 INITCAP 함수

 각 단어의 첫번째 문자를대문자로 나머지 문자는 소문자로 변경합니다.

 Syntax

INITCAP( column | expression ) 

사용예 

INITCAP( 'ORACLE SERVER' ) → Oracle Server 

 

문제 3) DEPT 테이블에서 첫 글자만 대문자로 변환하여 모든 정보를 출력하여라.

 

1.3.4 CONCAT 함수

 두 개의 문자열을 합성합니다. CONCAT는 두개의 매개변수만 사용 가능합니다.

 Syntax

CONCAT( column1 | expression1, column2 | expression2) 

사용예 

CONCAT('ORACLE','SEVER') → ORACLESERVER 

 

문제4) 두개의 SELECT 문이 있다. 결과의 차이점을 설명하여라

 

참고

 Column의 데이터 타입이 varchar2, number, char의 차이로 varchar2와 number는 가변길이, char는 고정 길이입니다.

 

1.3.5 SUBSTR 함수

 지정된 길이만큼의 문자열을 추출합니다.

 Syntax

SUBSTR( column | expression, m [,n]) 

 사용예 

SUBSTR('000101-3234232', 8, 1) → 3 

 

문제5) EMP 테이블에서 이름의 첫글자가 K'보다 크고 'Y'보다 적은 사원의 정보를 사원번호, 이름, 업무, 급여, 부서번호를 출력하여라, 단 이름순으로 정렬하여라.

 

1,3,6 LENGTH 함수

 문자열의 길이를 숫자 값으로 RETURN 한다.

 Syntax

 LENGTH( column | expression ) 

 사용예 

 INITCAP('000101-3234232') → 14 

 

문제 6) EMP 테이블에서 20번 부서 중 이름의 길이 및 급여의 자릿수를 사원번호, 이름, 이름의 자릿수, 급여, 급여의 자릿수를 출력하여라.

 

1.3.7 INSTER 함수

 명명된 문자의 위치를 숫자 값으로 RETURN한다.

 Syntax

 INSTR( column | expression, m[,n] )

 사용예 

 INSTR('MILLER','L', 1, 2) → 4 

 

문제 7) EMP 테이블에서 이름 중 'L'자의 위치를 출력하여라.

 

문제 8) 파일명을 입력을 입력받아 확장자가 없으면 .SQL을 붙여 출력하여라.

 

1.3.8 LPAD함수

 문자값을 우측부터 채웁니다.

 Syntax

 LPAD( column | expression, n, 'string' ) 

 사용예

 LPAD( 'MILLER', 10, '*' ) → ****MILLER

 

문제 9) 아래 두 문장의 결과를 보고 차이점을 설명하여라.

 

1.3.9 RPAD 함수

 문자값을 좌측부터 채웁니다.

 Syntax

RPAD(column | expression, n, 'string' )

 사용예 

RPAD( 'MILLER', 10, '*' ) 

 

문제 10) 아래 두 문장의 결과를 보고 차이점을 설명하여라.

 

1,3,19 LTRIM 함수

 왼쪽 문자를 지우는 함수 입니다.

 Syntax

 LTRIM( column1 | expression1, column1 | expression1) 

 사용예 

 LTRIM('MILLER', 'M') → ILLER 

 

문제11) EMP 테이블에서 10번 부서에 대하여 담당 업무 중 좌측에 'A'를 삭제하고 급여 중 좌측의 1을 삭제하여 출력하여라.

 

1.3.11 RTRIM 함수

 오른쪽 문자를 지우는 함수 입니다.

 Syntax

 RTRIM ( column1 | expression1, column2 | expression2) 

 사용예 

 RTRIM( 'MILLER', 'R' ) → MILLE 

 

문제 12) EMP 테이블에서 10번 부서에 대하여 담당 업무 중 우측에 'T'를 삭제하고 급여 중 우측의 0을 삭제하여 출력하여라.

 

1.3.11 TRANSLATE 함수

 특정 문자열을 대체하는 함수 입니다. 즉 str1을 str2 문자로 대체하는 함수이다.

 Syntax

 TRANSLATE (column1 | expression1, 'string1', 'string2') 

 사용예 

 TRANSLATE ('MILLER', 'L', '*') → MI**ER 

 

문자 13) EMP 테이블에서 성명을 소문자로 바꾸어 출력하여라

 

1,3,11 REPLACE 함수

 특정 문자열을 대신하는 함수 입니다.

 Syntax

REPLACE ( column1 | expression1, 'string1', 'string2' 

 사용예 

REPLACE('JACK and JUE', 'J', 'BL') → BLACK and BLUE 

 

문제 14) EMP 테이블에서 JOB에 'A'를 '$'로 바꾸어 출력하여라

 

1.4 숫자형 함수

 함수

사용목적 

ROUND 

숫자를 반올림 

TRUNC 

숫자를 절삭 

MOD 

나머지를 구함 

POWER 

거듭제곱 

SQRT 

제곱근 

SIGN 

양수, 음수, 0인지를 구분 

CHR 

ASCII값에 해당하는 문자를 구함 

 

1.4.1 ROUND 함수

 명시된 소수점으로 반올림하는 함수입니다. 숫자를 n 자리까지 반올림한다. n이 양수이면 소수 자리를, 음수이면 정수 자리를 사사오입합니다. 생략할 수 있으며 Default는 0입니다.

Syntax 

 ROUND(column1 | expression1, n) 

 사용예 

 ROUND(456.789,2) → 456.79

 

문제 15) 다음의 결과를 분석하여라

 

참고

 DUAL 테이블은 SYS User 가 Owner 이며 모든 사용자가 사용할 수 있도록 권한을 부여하였다. Dummy 라는 하나의 Column 과 X 값을 가지는 하나의 행을 포함합니다. DUAL 테이블은 오직 하나의 값을 출력하고자 할 때 유용합니다. 예를 들어 데이터를 가진 테이블에서 파생되지 않은 상수, 의사열, 표현식의 값인 경우 입니다. 즉 임의의 값을 알고자 할 경우 유용하게 사용할 수 있다. 위 SELECT 문장에서 dual이 아닌 dept를 사용하면 결과는 어떻게 될까?

 

1.4.2 TRUNC 함수

 명시된 숫자를 절삭하는 함수입니다. 숫자를 n자리까지 절삭한다. n이 양수이면 소수 자리를, 음수이면 정수 자리를 절삭합니다. 생략할 수 있으며 Default는 0입니다.

 Syntax

 TRUNC(column1 | expression1, n) 

 사용예 

 TRUNC(456.789, 2) → 456.78 

 

문제 16) 다음의 결과를 분석하여라.

 

1.4.3 MOD 함수

 숫자의 나머지를 구하는 함수입니다.

  Syntax 

 MOD(column1 | expression1, n)

 사용예 

 MOD(10, 3) → 1 

 

문제 17) EMP 테이블에서 급여를 30으로 나눈 나머지를 구하여 출력하여라.

 

1.4.4 POWER 함수

 거듭제곱을 구하는 함수 입니다.

 Syntax

 POWER(column1 | expression1 , n) 

 사용예 

 POWER(2,3) → 8 

 

1.4.5 SQRT 함수

 제곱근을 구하는 함수 입니다.

 Syntax

 SQRT( column1 | expression1 ) 

 사용예 

 SQRT(4) → 2

 

1.4.6 SIGN 함수

 주어진 숫자가 양수인지 음수인지 또는 0인지를 구하는 함수 입니다.

 Syntax

 SIGN( column1 | expression1 )

 사용예 

 SIGN(100) → 1

 

1.4.7 CHR 함수

 ASCII Code 값에 해당하는 문자를 구하는 함수 입니다.

 Syntax

 CHR( column1 | expression1 )

 사용예 

 CHR(65) → A

 

문제 18) EMP 테이블에서 20번 부서 중 이름과 담당 업무를 연결하여 출력하여라.단 담당업무를 한 줄 아래로 출력하여라

 

1.5 날짜형 함수

1.5.1 오라클 날짜 형식

 1) 오라클은 세기, 년, 월, 일, 시, 분, 초를 내부 숫자(7Byte) 형식으로 날짜를 저장 합니다.

 2) Default Date Type 은 DD-MON-YY(변경 가능)입니다.

 3) 오라클 날짜의 범위는 B.C 4712년 1월 1일부터 A.D 9999년 12월 31일 사이입니다.

 4) SYSDATE 는 오라클이 설치되어 있는 서버의 현재 날짜와 시간을 RETURN 하는 함수 입니다.

 

1.5.2 날짜 연산

 1) 날짜에서 숫자를 더하기나 빼어 날짜 결과를 출력

 2) 날짜 사이의 일수를 알기 위해서 두개의 날짜를 뺍니다.

 3) 시간을 24로 나누어서 시간을 날짜에 더합니다.

 날짜연산

결과 

설명 

Date + Number 

Date 

일수를 날짜에 더합니다. 

Date - Number 

Date 

날짜에서 일수를 뺍니다. 

Date - Date  

일수 

어떤 날짜에서 다른 날짜를 뻅니다. 

Date + Number / 24

Date 

시간을 날짜에 더합니다. 

 

문제 19) EMP 테이블에서 현재까지 근무일 수가 몇주 몇일 인가를 출력하여라. 단 근무 일수가 많은 사람 순으로 출력하여라.

 

1.5.3 날짜 함수

 날짜 함수는 오라클 날짜에 대해 연산을 합니다. 모든 날짜 함수는 숫자값을 RETURN하는데 MONTHS_BETWEEN을 제외하고는 DATE형을 RETURN합니다.

 날짜 함수

설명 

MONTHS_BETWEEN 

두 날짜 사이의 월수를 계산 

ADD_MONTHS 

월의 마지막 날을 계산 합니다. 

NEXT_DAY 

명시된 날짜로부터 다음 요일에 대한 날짜를 나타냅니다. 

LAST_DAY 

월의 마지막 날을 계산 합니다. 

ROUND 

날짜를 반올림 합니다. 

TRUNC 

날짜를 절삭 합니다. 

 

1.5.4 MONTHS_BETWEEN 함수

 1) 날짜와 날짜 사이의 월수를 계산합니다.

 2) 결과는 음수 또는 양수가 될 수 있습니다.

 3) 결과의 비정수 부분을 월의 부분을 나타냅니다.

 Syntax

MONTHS_BETWEEN(date1, date2) 

 사용예 

MONTHS_BETWEEN(sysdate,hiredate) → 212.04794 

위 예에서 212는 월을 나타내고 .04794는 월의 일부분을 나타냅니다.

 

문제 20) EMP 테이블에서 10번 부서 중 현재까지의 근무 월수를 계산하여 출력하여라.

 

1.5.5 ADD_MONTHS 함수

 1) 날짜에 월을 더합니다(ADD_MONTHS(hiredate, 10))

 2) 날짜에 월을 뺍니다(ADD_MONTHS(hiredate,-10))

 3) 결과의 날짜형입니다.

 Syntax

  ADD_MONTHS(date1, n)

 사용예

  ADD_MONTHS(hiredate,5) → 23-JUN-82

 

문제 21) EMP 테이블에서 10번 부서 중 입사 일자로부터 5개월이 지난 후 날짜를 계산하여 출력하여라.

 

1.5.6 NEXT_DAY 함수

 1) 명시된 요일의 돌아오는 날짜를 계산 합니다.

 2) 요일이 아니라 숫자도 기술 가능(SUNDAY:1, MONDAY:2, , , , , ,)

 3) NLS_LANG이 KOREAN_KOREA.K016KSC5601로 되어 있으면 한글도 사용 가능(일요일, 월요일, 화요일, , , , , ,)

 Syntax

 NEXT_DAY(date1, 'string' | n)

 사용예

 NEXT_DAY(hiredate, 'FRIDAY') → 29-JAN-82

 NEXT_DAY(hiredate, '금요일') → 29-JAN-82

 

문제 22) EMP 테이블에서 10번 부서 중 입사 일자로부터 돌아오는 금요일을 계산하여 출력하여라

 

1.5.7 LAST_DAY 함수

 1) 월의 마지막 날짜를 계산

 2) 윤년, 평년은 자동 계산

 Syntax

 LAST_DAY(date1) 

 사용예

 LAST_DAY(hiredate) → 30-NOV-81 

 

문제 23) EMP 테이블에서 입사한 달의 근무 일수를 계산하여 출력하여라. 단 토요일과 일요일도 근무 일수에 포함한다.

 

1.5.8 ROUND 함수

 1) 명시된 형식으로 반올림 합니다.

2) 날짜를 가장 가까운 년도 또는 월로 반올림할 수 있습니다.

  ① fmt에 명시된 단위에 대해 반올림한 날짜를 계산

  ② fmt가 생략되면 날짜를 가장 가까운 날짜로 반올림한다.

 Syntax

 ROUND(date1 [,fmt] 

 사용예

 ROUND('25-JUN-99','MONTH') → 01-AUG-99

 ROUND('25-JUN-98','YEAR') → 01-JAN-99

 

1.5.9 TRUNC 함수

 1) 명시된 형식으로 절삭 합니다.

 2) 날짜를 가장 가까운 년도 또는 월로 절삭할 수 있습니다.

 ① fmt에 명시된 단위에 대해 절삭한 날짜를 계산

 ② fmt가 생략되면 날짜를 가장 가까운 날짜로 절삭한다.

 Syntax

 TRUNC(date1 [,fmt] 

 사용예

 TRUNC('25-JUN-99','MONTH') → 01-JUN-99

 TRUNC('25-JUN-98','YEAR') → 01-JAN-98  

 

문제24) EMP 테이블에서 10번 부서 중 입사한 달의 ROUND과 TRUNC 함수를 비교합니다.

 

1.6 변환 함수

1.6.1 데이터의 형 변환

 오라클 서버는 어떤 일정한 데이터형의 데이터를 사용해야 하는 곳에, 그것과 다른 데이터형의 데이터를 사용할 수 있게 합니다. 이것은 오라클 서버가 자동적으로 데이터형을 변환할 수 있을 때 허용됩니다. 이 데이터형 변환은 오라클 서버에 의해서 암시적으로 행해지거나 또는 사용자에 의해서 명시적으로 행해질 수 있습니다.

 

가) 암시적인 데이터형 변환

 값 할당(assignment)시, 오라클 서버는 다음을 자동으로 변환할 수 있습니다.

 FROM

To 

VARCHAR2 or CHAR 

NUMBER 

VARCHAR2 or CHAR 

DATE 

NUMBER 

VARCHAR2 

DATE 

VARCHAR2 

 

참고

 오라클 서버가 값 할당(assignment) 문장에서 사용된 값의 데이터형을 목표(target)값의 데이터형으로 변환할 수 있을 경우에 할당(assignment) 문장은 올바로 수행됩니다. 또한 CHAR가 NUMBER로의 변환은 문자열이 적절한 숫자로 나타낼수 있을 경우에만 가능하고 CHAR 가 DATE로의 변환은 문자열이 Default Date Type와 같을 경우에만 성공합니다.

 

Guidelines

 비록 암시적 데이터형 변환을 이용할 수 있더라도, SQL 문장의 안정성을 위해서 명시적 데이터형 변환을 할 것을 권장합니다.

 

나) 명시적인 데이터형 변환

 SQL은 변환 함수를 통하여 어떤 데이터형의 값을 다른 데이터형의 값으로 변환하기 위하여 아래의 함수를 제공 합니다.

 함수

사용목적 

TO_CHAR 

숫자나 문자값을지정한 형식의 VARCHAR2 문자열로 변환 합니다. 

TO_NUMBER 

숫자를 포함하는 문자열을 숫자로 변환 합니다. 

TO_DATE

날짜를 나타내는 문자열을 명시된 날짜로 변환 합니다. 

 

1.6.2 TO_CHAR 함수

 숫자, 날짜, 문자열을 지정한 형식의 VARCHAR2 문자열로 변환하는 함수입니다.

 

1) 날짜 형식을 변환

 Syntax

TO_CHAR( date, 'fmt' ) 

 사용예

TO_CHAR(hiredate, 'YY/MM/DD') → 81/11/17 

 

가) 특정 형식으로 날짜를 출력

 이전의 모든 날짜 형식은 DD-MON-YY 형식이었다. TO_CHAR 함수는 이러한 형식의 날짜를 명시한 날짜 형식으로 변환하여 출력할 수 있다.

 

Guidelines

 1) 포맷(fmt) 모델은 단일 인용 부호로 둘러 싸여 있어야 하고 대소문자를 구분한다.

 2) 포맷(fmt) 모델은 어떤 타당한 날짜 형식도 포함 가능하다.

 3) 추가된 공백을 제거하거나 앞부분의 0을 없애기 위해서 "fm"요소를 사용한다.

 4) SQL*Plus COLUMN 명령어로 문자 필드 결과의 출력 폭의 크기를 조절할 수 있다. (DEFAULT는 80)

 

나) 날짜 형식 모델

 구성요소

설명 

SCC or CC 

세기: BC날짜에는 _S를 붙입니다. 

Years in dates YYYY or SYYYY 

년 : BC 날짜에는 _S를 붙입니다.

YYY or YY or Y 

년의 마지막 3, 2또는 1자리 수 

Y,YYY 

콤마가 있는 년 

lYYY,lYY,lY,Y 

ISO표준에 바탕을 둔 4,3,2또는 1자리 수 

SYESR or YEAR 

문자고 표현된 년 : BC날짜에는 _S를 붙입니다. 

BC or AD 

BC/AD 지시자 

B.c or A.D

.이 있는 BC/AD지시자 

년의4분의 1 

MM 

두자리 값의 월 

MONTH 

9자리를 위해 공백을 추가한 월 이름 

MON

세 자리의 약어로 된 월 이름 

RM 

로마 숫자 월 

WW or W 

년이나 월의 주 

DDD or DD or D 

년, 월 또는 주의 일 

DAY 

9자리를 위해 공백을 추가한 요일 이름 

DY 

세 자리 약어로된 요일 이름 

Julian day:BC4713년 12월 31일 이후의 요일 수 

 

다) 시간 형식

 1) 시간 요소는 날짜의 시간 부분을 형식화(HH24:MI:SS AM → 15:34:32 PM)

 2) 문자열에 이중 인용 부호를 사용하여 문자열을 추가(DD "of" MONTH → 10 of OCTOBER)

 3) 숫자 접미사는 숫자를 문자로 변환(ddspth → four teenth) 

 4) 시간 형식의 종류

 요소

설명 

AM or PM 

정오 지시자 

A.M or P.M 

.이 있는 정오 지시자 

HH or HH12 or HH24 

하루 중 시간(1-12, 0-23)

MI 

분(0-59) 

SS 

초(0-59) 

SSSSS

자정 이후의 초(0-86399) 

 

라) 기타 형식

 요소

설명 

/ , , 

사용 문자가 결과에 다시 나타난다 

"of the" 

인용 부호내의 문자가 결과에 출력 

 

마) 숫자에 영향을 주는 접미사

 요소

설명 

TH 

서수(DDTH → 4TH) 

SP 

명시한 수(DDSP → FOUR) 

SPTH or THSP 

명시한 서수(DDSPTH → FOURTH) 

 

문제25) EMP테이블에서 10번 부서 중 입사 일자를 '1 May 1981'와 '1998년 1월 1일'의 형태로 출력하여라

 

2) 숫자 형식을 변환

 TO_CHAR함수를 사용하여 숫자 값을 문자로 출력하기 위해 사용한다.

 Syntax

TO_CHAR( number, 'fmt' ) 

 사용예 

TO_CHAR(sal, $999,999 ) → $3,000 

 

가) 숫자를 가진 TO_CHAR 함수

 1) 숫자 값을 문자로 변환할 때 즉 NUMBER형을 VARCHAR2로 전환할 때

 2) 이 기법은 연결(Concatenation) 시에 유용

 

Guidelines

 1) 형식에 의해 제공되는 자릿수를 초과하는 숫자에 대해서는 "#"을 출력

 2) 지정된 소수 값을 형식에서 제공하는 소수점 자리로 반올림 한다.

 

나) 숫자 형식 모델

 요소

설명 

예 

결과 

9의 수는 출력 폭을 결정 

999999 

1234 

무효의 0을 출력 

099999 

001234 

달러 기호 

$999999 

$1234 

지역 화패 기호 

L999999 

\1234 

명시한 위치에 소수점 

999999,99 

1234.00 

명시한 위치에 콤마 

999,999 

1,234 

MI 

우측에 마이너스 기호(음수 값) 

999999MI 

1234- 

PR 

음수를 "()"로 묶는다 

999999PR 

<1234> 

EEEE 

과학적인 부호 표기 

99.999EEEE 

1.234E+03 

V

10을 n번 곱합니다.

9999V99 

123400 

0을 0이 아닌 공백으로 출력 

B9999.99 

1234.00 

 

문제26) EMP 테이블에서 부서 20중 급여 앞에 $를 삽입하고 3자리마다 ,를 출력하여라

 

1.6.3 TO_NUMBER 함수

 숫자를 포함하는 문자열을 숫자로 변환 합니다.

 Syntax

TO_NUMBER( char ) 

 사용예 

TO_NUMBER('1234') → 1234 

 

1.6.4 TO_DATE 함수

 날짜를 나타내는 문자열을 명시된 날짜로 변환 합니다.

 Syntax

TO_DATE( char [, 'fmt' ] ) 

 사용예 

TO_DATE('19990220181030','YYYYMMDDHH24MISS') → 1999/02/20 18:10:30 

 

문제27) February 22, 1981에 입사한 사원의 정보를 이름, 업무, 입사일자를 출력하여라.

 

1.7 기타 함수

1.7.1 DECODE 함수

 CASE 나 IF-THEN-ELSE-END IF 문장의 조건적 조회를 가능하게 함

 Syntax

DECODE(col | expr,search1,result1[,search2,result2...][,default] 

 사용예

DECODE(deptno, 10, sal*1.1, 20, sal*1.5, 30, sal*1.2, sal) 

 

문제 28) EMP 테이블에서 JOB이 ANALYST이면 급여 증가는 10%이고 JOB이 CLERK이면 급여 증가는 15%이고 JOB이 MANAGER이면 급여 증가는 20%입니다. 다른 업무에 대해서는 급여증가가 없습니다. 사원번호, 이름, 업무, 급여, 증가된 급여를 출력하여라.

 

1.8 중첩 함수

 1) 단일행 함수는 여러 LEVEl에 걸쳐 중첩 가능

 2) 중첩 함수는 가장 하위 LEVEL에서 상위 LEVEL 순으로 진행

 Syntax

F3( F2( F1(col,arg1), arg2), arg3) 

 사용예

NVL(TO_CHAR(mgr), 'No Manager) 

 

문제 28) 다음의 결과를 분석하여 보아라.

 

Posted by 전설의아이
|