Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

GREATEST

문법

MAIN

greatest::=
Description of greatest.gif follows

그림 설명
 

목적

MAIN

GREATEST함수는 하나 이상의 인수중에서 가장 큰 값을 반환한다. 오라클 데이터 베이스는 반환되는 타입을 정의 하기 위해 첫번째 expr을 이용한다. 만약 첫번째 expr이 수치형이라면, 오라클은 수치 순위가 가장 높은 인수를 정의하여, 비교 전에 나머지 인수를 그 데이터 형으로 암묵적으로 변환하고, 그 데이터형을 되돌린다. 만약 첫번째 expr이 수치형이 아니라면, 비교전에 첫번째 인수뒤의 expr을 암묵적으로 첫번째 expr로 변환한다.

오라클 데이터 베이스는 nonpadded 비교 규칙을 이용하여 각 expr을 비교한다. 문자 비교는 데이터 베이스 세트에서 문자의 값에 근간하여 비교한다. 만약 문자가 가장 높은 순위의 문자세트 값이라면, 다른 것보다 크다. 만약 함수에 의해 반환되는 값이 문자 데이터라면, 그것의 데이터형은 항상 VARCHAR2이다.

참고 : 문자 타입의 비교 법칙

  - DATA TYPE, CHAR, VARCHAR2, CHARACTER,문자열 비교법칙

  - ORACLE에서 문자열을 비교하기 위해 Blank-Padded Comparison Semantics과 Nonpadded Comparison Semantics 이라는 방법을 사용한다.

      여기에서 주의할 점은 Blank-Padded Comparison Semantics과 Nonpadded Comparison semantics의 결과가 항상 일치하는 것이 아니라는 점이다.

 

그러면 사례를 통해 두 비교방식에 대하여 알아보도록 하자.

Blank Padded Comparison

Nonpadded Comparison

'ab' > 'aa'

'ab' > 'aa'

'ab' > 'a '

'ab' > 'a '

'ab' > 'a'

'ab' > 'a'

'ab' = 'ab'

'ab' = 'ab'

'a ' = 'a'

'a ' > 'a'

위의 사례를 보면 비교되는 문자열이 Blank를 포함하고 있으면 padding과 non padding이 다른 결과를 나타내고 있다.

1.Blank-Padded Comparison Semantics

Oracle에서 이 비교방식을 사용하는 경우는 다음과 같다.

2.Nonpadded Comparison Semantics

Oracle에서 이 비교방식을 사용하는 경우는 다음과 같다.


 

예제

MAIN

다음 문장은 가장 큰 값을 가지는 문자열을 선택한다.

SELECT GREATEST ('HARRY', 'HARRIOT', 'HAROLD')
       "Greatest" FROM DUAL;
 
Greatest
--------
HARRY