IT

[오라클/함수] BITAND 함수

생각파워 2016. 11. 14. 15:27

Syntax

 

Description of bitand.gif follows

 

 

오라클 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()함수가 이런 기능을 가지고 있다는건 알겠는데, 그럼 어디에 쓸 수 있을까요??

한가지 예를 들어보도록 하겠습니다.

남녀구분, 내외국인구분, 성인구분이라는 정보가 저장이 되어야한다고 했을때 각각의 정보를 하나의 컬럼으로 만들어서 사용할 수 도 있고, 세 컬럼을 하나의 컬럼으로 합쳐서 구성할 수도 있을것입니다. 

 한 컬럼으로 구성했을 때, 첫번째 값은 남녀구분, 두번째값은 내외국인구분, 세번째값은 성인구분이 되는거죠.

그 컬럼에 

111 이라는 값이 들어가면 '남자','내국인','성인'

000 이라는 값이 들어가면 '여자','외국인','미성년'

이 되는겁니다. 

 

이런식의 데이터가 들어가 있는 컬럼을 표현해줄때 BITAND()함수가 유용하게 사용됩니다.

아래의 예를 보시면, 좀 더 명확하게 알 수 있습니다. 

 

 

 

업데이트 시에도 하나의 컬럼만을 업데이트 하면 되기때문에, 업데이트 성능을 높일수 있습니다. 단, 항상 컬럼을 쪼개서 사용하기때문에 조회 속도부분에서 문제가 생길 가능성은 커질듯 합니다. 

 

 

 

 

 

반응형