반응형

오라클 함수 21

[오라클/함수] 문자열 자릿수 채우기 LPAD, RPAD 함수

Purpose 문자열을 지정된 크기로 채워야 되는 때가 있습니다. 이름을 30자리로 맞춰달라든지, 금액을 10자리로 하는데 앞자리를 0으로 채워달라고 하는 경우들이죠. 특정문자열을 지정한 자릿수만큼 내가 정한 문자로 채울때 쓰는 함수가 LPAD, RPAD 함수입니다. 영어 단어 PAD의 뜻은 '덧대다'의 뜻이 있는데, IT에서 쓰는 뜻은 데이터 영역의 불필요한 부분을 공백 등으로 채우는 일(TTA정보통신용어사전) 이라고 정의되어 있습니다. 그러므로 LPAD(Left PAD) 왼쪽 채우기 RPAD(Right PAD) 오른쪽 채우기 라고 할 수 있습니다. Syntax LPAD와 RPAD의 문법은 같습니다. 왼쪽으로 채우냐, 오른쪽으로 채우냐의 차이가 있을 뿐이죠. expr1 : 작업문자열 n : 자릿수 ex..

IT 2016.11.30

[오라클/함수] 첫문자를 대문자로 리턴 INITCAP 함수

Syntax Purpose INITCAP 함수는 char에 들어오는 인자값을 공백으로 구분하여 한단어에서 제일 첫번째 문자를 대문자로 리턴하는 함수입니다. i am happy 라는 문자열이 있을 때, 공백에 따라 단어를 세개로 구분해 'i', 'am', 'happy'로 구분한 후 그 단어의 제일 첫번째 문자를 대문자로 변환하여 리턴하게 됩니다. 결과값은 I Am Happy 가 됩니다. Examples

IT 2016.11.29

[오라클/함수] 오라클 문자 만들기 CHR 함수

Syntax Purpose CHR 함수는 함수인자에 대응하는 문자를 리턴하는 함수입니다. CHR(65)면 'A', CHR(66)면 'B'를 리턴하게 됩니다. 실제로 문자 'A', 'B'와 같이 키보드에 나타나 있는 코드의 경우에는 굳이 함수를 써서 값을 가져올 필요는 없을겁니다. 그래서 키보드에 없는 특수문자등을 필요로 할때 사용하게 되죠. 저같은 경우에는 개행문자를 만들거나 제거할 때 종종 사용했었습니다. 개행문자가 '/r/n' 이므로 SELECT '문자'||CHR(13)||CHR(10) FROM DUAL 이런방식으로요. 아래 ASCII 코드 참고하셔서 필요한 부분에 사용하시면 될것 같습니다. ASCII 코드표 참조 Examples * 참고로 사용중인 DBMS가 어떤 CHARACTER SET을 사용하고..

IT 2016.11.28

[오라클/함수] 분할함수 WIDTH_BUCKET

Syntax expr : 분할할 데이터. 컬럼명이나 수식 등 min_value : expr 값 중 분할 할 가장 작은 값 max_value : expr 값 중 분할 할 가장 큰값 num_buckets : 분할 할 개수 Purpose WIDTH_BUCKET 함수는 주어진 인자값이 전체 데이터 사이에서 어느 부분에 위치하고 있는지 그 값을 리턴하는 함수입니다. 즉 전체 데이터 값을 버킷에 나눈다고 생각하시면 됩니다. Examples 아래와 같은 데이터가 있습니다. 위 데이터를 가지고 아래 SELECT문으로 처리를 하면 아래와 같은 결과가 나옵니다. 이렇게 값이 나오는 이유는 버킷을 값으로 나눠서 구분하기 때문입니다. 참고로 위 예에서 최대값을 101로 적은 이유는 최대값은 버킷 범위에 포함되지 않기 때문에 ..

IT 2016.11.24

[오라클/함수] 오라클 버림함수 TRUNC

TRUNC 함수 이름의 원래 단어인 'truncate'의 뜻은 자르다, 절단하다의 뜻을 가지고 있습니다. 그래서 함수의 기능도 실수에서 불필요한 자리를 날려버리는 기능을 하고 있습니다. ROUND 함수는 반올림, TRUNC 함수는 버림처리 시 많이 사용합니다. 보통 돈 계산할때 많이 쓰죠. '천원단위 절사'와 같이요. Syntax purpose 아래 그림에서 보는것과 같이 n2 자릿수는 ROUND함수와 똑같습니다. 저기 integer 값이 n2값입니다. n의 값에서 n2자리만큼 남겨두고 나머지는 날려버립니다. Examples

IT 2016.11.24

[오라클/함수] 양수,0, 음수인지 판단하는 SIGN 함수

Syntax Purpose SIGN 함수는 인자가 양수인지, 0인지, 음수인지를 판단하여 값을 리턴하는 함수입니다. 아래와 같이 n의 값이 0을 기준으로 크거나, 작거나, 같을때 1, 0, -1 의 값을 리턴합니다. n 0 : 1 리턴 Examples Appends n의 값이 binary float 형의 0일 경우에는 1이 리턴되는데, 이유는 binary float 와 binary double 형일 경우에는 sign bit를 리턴하기 때문입니다.

IT 2016.11.24

[오라클/함수] 나머지 함수 MOD 와 REMAINDER 차이점

Syntax Purpose 오라클에서 MOD함수와 REMAINDER 함수는 나머지를 구하는 함수로 알려져 있습니다. 그런데 둘다 똑같은 나머지를 반환한다면 함수가 두개일 필요가 없겠지요. 두 함수가 동일하게 나머지를 리턴하는 것은 맞지만, 내부적으로 돌아가는 로직이 약간 차이가 있습니다. 식을 살펴보면, MOD(n2, n1) = SIGN(n2) * (ABS(n2) - (ABS(n1) * FLOOR(ABS(n2)/ABS(n1))) REMAINDER(n2, n1) = n2 - n1 * ROUND(n2,n1) 이렇게 계산되어 집니다. 계산식이 복잡해 보이기는 하는데, 별건 없습니다. MOD함수의 인자에 절댓값을 넣어준다는거와 MOD함수에는 FLOOR함수가 사용되고, REMAINDER함수에는 ROUND함수가 사..

IT 2016.11.23

[오라클/함수] BITAND 함수

Syntax 오라클 BITAND 함수는 함수명에 나타나 있듯이 비트값을 AND 연산하는 함수입니다. 예를 보면 간단하게 이해할 수 있습니다. Example 7은 2진주로 111 , 4는 2진수로 100 이 되죠. 111과 100을 AND 연산하면 아래와 같이 100이 나오고, 이 값이 4로 표시됩니다. 좀 더 명시적으로 표현하기 위해서 BIN_TO_NUM()함수를 사용하면 됩니다. BIN_TO_NUM() 함수는 인자로 들어가는 0과1의 수를 그대로 숫자로 바꿔주는 기능을 하는 함수입니다. 위의 예를 BIN_TO_NUM()함수를 사용해서 바꾸면 다음과 같이 표기할 수 있습니다. 자, BITAND()함수가 이런 기능을 가지고 있다는건 알겠는데, 그럼 어디에 쓸 수 있을까요?? 한가지 예를 들어보도록 하겠습니..

IT 2016.11.14
반응형