DataBase/Oracle25 [ORACLE]Null 처리 방법 이번 포스팅은 ORACLE에서 Null 처리 및 검사 방법을 설명합니다. 목차 IS [NOT] NULL NVL NVL2 NULLIF COALESCE DECODE CASE IS [NOT] NULL expr1 IS [NOT] NULL 테이블에서 expr1 칼럼이 NULL 값이거나 NULL 값이 아닌 행을 반환합니다. EMP 테이블에서 MONEY 칼럼의 값이 NULL인 직원들을 조회하려면 다음과 같이 쿼리를 작성할 수 있습니다. SELECT * FROM EMP WHERE MONEY IS NULL; 실행 결과 반대로 MONEY 칼럼의 값이 NULL이 아닌 직원들은 IS NOT NULL을 사용하여 조회할 수 있습니다. SELECT * FROM EMP WHERE MONEY IS NOT NULL; 실행 결과 NULL.. DataBase/Oracle 2021. 11. 28. [ORACLE]ORA-00970: GROUP BY 표현식이 아닙니다 토드, SQL Developer, DBeaver와 같은 SQL 개발 도구에서는 쿼리가 정상적으로 실행이 되는데, mybatis 또는 ibatis에서 「 ORA-00970: GROUP BY 표현식이 아닙니다 」 라는 에러가 발생하는 경우가 있습니다. 에러 원인 GROUP BY 절에 파라메타가 있을 경우 SELECT COLUMN1 , #{PARAM} FROM TABLE GROUP COLUMN1, #{PARAM} 에러 해결 방법 #을 $로 변경($로 변경시 보안상 문제 있으므로 추천하는 방안은 아님) InLine View 적용 SELECT COLUMN1 , COLUMN2 FROM ( SELECT COLUMN1 , #{PARAM} AS COLUMN2 FROM TABLE ) GROUP COLUMN1, COLUMN2 DataBase/Oracle 2021. 7. 7. [ORACLE]LENGTH vs LENGTHB vs VSize LENGTH Function - 문자열의 길이를 반환합니다. LENGTH( string ) LENGTHB Function - 문자열의 Byte 수를 반환합니다. LENGTHB( string ) VSize Function - 표현식의 Byte 수를 반환합니다. VSIZE( expression ) EX 1) LENGTH SELECT LENGTH('ORACLE') AS LENGTH_RESULT FROM DUAL; EX 2) LENGTHB SELECT LENGTHB('ORACLE') AS LENGTHB_RESULT FROM DUAL; EX 3) VSize SELECT VSIZE('ORACLE') AS VSIZE_RESULT FROM DUAL; 한글은 Character Set에 따라 byte가 다르다. 'LENG.. DataBase/Oracle 2021. 6. 26. [ORACLE]문자열의 음성을 코드로 반환하는 SOUNDEX 함수 SOUNDEX Function SOUNDEX( string ) SOUNDEX 함수는 문자열의 음성을 4자리의 음성 코드로 반환합니다. 음성 코드는 문자 1자리 + 숫자 3자리로 구성되어있습니다. 특징 반환 값의 첫 번째 문자는 매개변수(string)의 첫 문자입니다. 숫자 3자리는 자음으로 결정됩니다. 대소문자를 구분하지 않습니다. 음성으로 표현할 수 없는 문자일 경우 NULL을 반환합니다. EX 1) 대소문자 구분 안함 SELECT SOUNDEX('tech on the net') AS SOUNDEX_RESULT01 , SOUNDEX('TECH ON THE NET') AS SOUNDEX_RESULT02 FROM DUAL; EX 2) 음성이 유사한 경우 SELECT SOUNDEX('apples') AS S.. DataBase/Oracle 2021. 6. 26. [ORACLE]문자 치환 TRNSLATE 함수 TRANSLATE Function TRANSLATE(string, from_string, to_string) TRANSLATE 함수는 특정 문자를 지정된 문자로 치환된 문자열을 반환합니다. REPLACE 함수와는 다르게 단일 문자를 치환합니다. 설명하기 어려운 함수이므로 바로 샘플 쿼리와 그림으로 설명합니다. 샘플 쿼리 SELECT TRANSLATE('ORACLE', 'OAE', '12') AS TRANS_RESULT , LENGTH(TRANSLATE('ORACLE', 'OAE', '12')) AS TRANS_LEN FROM DUAL; 치환 과정 원본 문자열의 치환 쿼리 결과 문자 'E'는 공백으로 치환이 되었기 때문에 치환된 문자열의 길이는 5입니다. 매개변수 string - 기준이 되는 원본 문자열입.. DataBase/Oracle 2021. 6. 26. [ORACLE]문자열 치환 REPLACE 함수 REPLACE Function REPLACE(string_expression, string_pattern [,string_replacement]) REPLACE 함수는 특정 문자열을 지정된 문자열로 치환된 문자열을 반환합니다. 매개변수 string_expression - 기준이 되는 문자열입니다. - NULL 또는 빈 값('')인 경우 REPLACE함수는 NULL을 반환합니다. string_pattern - string_expression에 포함된 특정 문자열(string_pattern)입니다. - string_expression에 특정 문자열(string_pattern)이 존재하지 않을 경우 REPLACE 함수는 치환을 하지 않으므로 string_expression을 반환합니다. string_repla.. DataBase/Oracle 2021. 6. 25. [ORACLE]나머지 값을 구하는 REMAINDER, MOD 함수 REMAINDER Function REMAINDER (number2, number1) number2를 number1로 나누었을 때 나머지 값을 반환합니다. MOD Function MOD ( number2, number1 ) number2를 number1로 나누었을 때 나머지 값을 반환합니다. REMAINDER 함수의 특징 number2와 number1은 모든 숫자 데이터 타입이 가능합니다. 반환 값은 숫자 데이터 타입입니다. number2가 무한대이며, 데이터 타입이 NUMBER이면 오류를 반환하고 데이터 타입이 BINARY_FLOAT 또는 BINARY_DOUBLE이면 NaN을 반환합니다. number1 != 0 이면 나머지 값의 계산식은 number2 - (number1 * ROUND(number2 /.. DataBase/Oracle 2021. 6. 5. [ORACLE]양수, 음수 판단하는 SIGN 함수 SIGN Funciton SIGN ( number ) SIGN 함수는 숫자가 양수인지 음수인지 판단하는 함수입니다. Return 값 양수일 경우 1을 반환 음수일 경우 -1을 반환 0일 경우 0을 반환 NULL일 경우 NULL을 반환 매개변수가 이진 부동 소수점 숫자(BINARY_FLOAT 및 BINARY_DOUBLE)인 경우에는 SIGN 함수는 숫자의 부호 비트를 반환합니다. Return 값 number = 0 또는 number = NaN 인 경우 1 Example Data EX 1) 기본 사용법 SELECT SIGN(100) AS SIGN_VALUE01 , SIGN(-100) AS SIGN_VALUE02 , SIGN(0) AS SIGN_VALUE03 , SIGN(NULL.. DataBase/Oracle 2021. 6. 5. [ORACLE]최대값, 최소값 구하는 GREATEST, LEAST 함수 GREATEST Function GREATEST (expr1, expr2, ..., exprN) GREATEST 함수는 주어진 목록에서 최대값을 구하기 위해 사용됩니다. 타입 유형은 숫자, 알파벳, 날짜 값이 가능합니다. LEAST Function LEAST (expr1, expr2, ..., exprN) LEAST 함수는 주어진 목록에서 최솟값을 구하기 위해 사용됩니다. 타입 유형은 숫자, 알파벳, 날짜 값이 가능합니다. GREATEST Function, LEAST Function 특징 표현식의 데이터 유형이 다른 경우에는 expr1의 데이터 타입으로 변환합니다. 모든 표현식은 첫 번째 비교가 되기 전에 동일한 데이터 타입으로 변환 후 비교 됩니다. 표현식에 NULL이 포함되어 있으면 NULL을 반환합.. DataBase/Oracle 2021. 6. 4. [ORACLE]조건문을 제공하는 DECODE 함수 DECODE Function DECODE(expression, search1, result1 [, search2, result2], ..., [,searchN, resultN] [, default]); DECODE 함수는 조건에 따라 결과를 다르게 처리합니다. IF-THEN-ELSE 로직을 포함합니다. 매개변수 expression - 검색하고자 하는 표현식입니다. - DECODE 함수는 값을 비교하기 전에 expression을 search1(첫 번째 검색 값)의 데이터 유형으로 자동으로 변환합니다. search1, search2, ..., searchN - expression과 비교되는 값입니다. result1, result2, ..., resultN - expression이 search와 같은 경우 반.. DataBase/Oracle 2021. 6. 3. [ORACLE]순위 표현하는 RANK함수 RANK Function RANK 함수는 조회된 결과에 대해 순위를 지정합니다. 값이 중복되는 경우 동일한 순위를 나타내며, 다음 순위의 값은 중복되는 개수만큼 증가된 값입니다. 1. 분석함수로 사용 RANK() OVER ( [ query_partition_clause] ORDER BY clause ) 분석 함수로 사용되는 RANK 함수는 쿼리의 각 행에 대한 순위를 다른 행과 함께 반환합니다. GROUP BY를 하지 않아도 순위를 확인할 수 있습니다. EX 1) 파티션을 생략한 SCORE에 대한 순위 CREATE TABLE TEST_TABLE ( ID VARCHAR2(4000 BYTE), NAME VARCHAR2(200 BYTE), SCORE NUMERIC(17, 4) ); INSERT INTO TES.. DataBase/Oracle 2021. 5. 22. [ORACLE]DUMP 함수 DUMP Function DUMP( expression [, return_format] [, start_position] [, length] ) DUMP 함수는 데이터 타입, 바이트 길이 및 expression의 내부 표현 정보를 VARCHAR2 형식으로 반환하는 함수입니다. 매개변수 expression - 분석하고자 하는 표현식입니다. - 표현식이 NULL이면, DUMP 함수는 NULL을 반환합니다. return_format - 반환 값의 형식을 결정합니다. - 생략 가능하며, 생략시 내부 표현을 10진수로 표현합니다. 값 설명 8 8 진법 10 10 진법 16 16 진법 17 단일 문자 1008 문자셋과 8 진법 1010 문자셋과 10 진법 1016 문자셋과 16 진법 1017 문자셋과 단일 문자 s.. DataBase/Oracle 2021. 5. 21. 이전 1 2 3 다음