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()함수가 이런 기능을 가지고 있다는건 알겠는데, 그럼 어디에 쓸 수 있을까요??
한가지 예를 들어보도록 하겠습니다.
남녀구분, 내외국인구분, 성인구분이라는 정보가 저장이 되어야한다고 했을때 각각의 정보를 하나의 컬럼으로 만들어서 사용할 수 도 있고, 세 컬럼을 하나의 컬럼으로 합쳐서 구성할 수도 있을것입니다.
한 컬럼으로 구성했을 때, 첫번째 값은 남녀구분, 두번째값은 내외국인구분, 세번째값은 성인구분이 되는거죠.
그 컬럼에
111 이라는 값이 들어가면 '남자','내국인','성인'
000 이라는 값이 들어가면 '여자','외국인','미성년'
이 되는겁니다.
이런식의 데이터가 들어가 있는 컬럼을 표현해줄때 BITAND()함수가 유용하게 사용됩니다.
아래의 예를 보시면, 좀 더 명확하게 알 수 있습니다.
업데이트 시에도 하나의 컬럼만을 업데이트 하면 되기때문에, 업데이트 성능을 높일수 있습니다. 단, 항상 컬럼을 쪼개서 사용하기때문에 조회 속도부분에서 문제가 생길 가능성은 커질듯 합니다.
'IT' 카테고리의 다른 글
[오라클/함수] 나머지 값 계산 함수 MOD (0) | 2016.11.15 |
---|---|
[오라클/함수] 올림함수 CEIL(), 내림함수 FLOOR() (0) | 2016.11.14 |
[오라클/함수] ABS 절댓값 함수 (0) | 2016.11.11 |
[AWS 아마존 웹서비스] AWS 요금폭탄 피하기 (2) | 2016.11.10 |
[엑셀] VLOOKUP 함수 (0) | 2016.11.07 |