Bitstring 함수

Bitstring 함수

이 섹션은 BITSTRING 값을 검사하고 조작하기 위한 함수와 연산자를 설명해요. 비트 연산 AND, OR, XOR을 수행할 때 비트 문자열은 같은 길이여야 해요. 비트 시프트 시 문자열의 원래 길이는 유지돼요.

출처: 문서

본문

이 섹션은 BITSTRING 값을 검사하고 조작하기 위한 함수와 연산자를 설명해요. 비트 연산 AND, OR, XOR을 수행할 때 비트 문자열은 같은 길이여야 해요. 비트 시프트 시 문자열의 원래 길이는 유지돼요.

Bitstring 연산자

아래 표는 BIT 타입에 사용 가능한 수학 연산자를 보여줘요.

연산자 설명 예제 결과
& 비트 AND '10101'::BITSTRING & '10001'::BITSTRING 10001
` ` 비트 OR `'1011'::BITSTRING
xor 비트 XOR xor('101'::BITSTRING, '001'::BITSTRING) 100
~ 비트 NOT ~('101'::BITSTRING) 010
<< 비트 왼쪽 시프트 '1001011'::BITSTRING << 3 1011000
>> 비트 오른쪽 시프트 '1001011'::BITSTRING >> 3 0001001

Bitstring 함수

아래 표는 BIT 타입에 사용 가능한 스칼라 함수를 보여줘요.

이름 설명
bit_count(bitstring) 비트 문자열에서 설정된 비트 수를 반환해요.
bit_length(bitstring) 비트 문자열의 비트 수를 반환해요.
bit_position(substring, bitstring) 특정 부분 문자열의 첫 번째 시작 인덱스를 반환하고, 없으면 0을 반환해요. 첫 번째(가장 왼쪽) 비트는 1로 인덱싱돼요.
bitstring(bitstring, length) 결정된 길이의 비트 문자열을 반환해요.
get_bit(bitstring, index) 비트 문자열에서 n번째 비트를 추출해요. 첫 번째(가장 왼쪽) 비트는 0으로 인덱싱돼요.
length(bitstring) bit_length의 별칭.
octet_length(bitstring) 비트 문자열의 바이트 수를 반환해요.
set_bit(bitstring, index, new_value) 비트 문자열의 n번째 비트를 newvalue로 설정해요. 첫 번째(가장 왼쪽) 비트는 0으로 인덱싱돼요. 새 비트 문자열을 반환해요.

bit_count(bitstring)

| 설명 | 비트 문자열에서 설정된 비트 수를 반환해요. | | 예제 | bit_count('1101011'::BITSTRING) | | 결과 | 5 |

bit_length(bitstring)

| 설명 | 비트 문자열의 비트 수를 반환해요. | | 예제 | bit_length('1101011'::BITSTRING) | | 결과 | 7 |

bit_position(substring, bitstring)

| 설명 | 특정 부분 문자열의 첫 번째 시작 인덱스를 반환하고, 없으면 0을 반환해요. 첫 번째(가장 왼쪽) 비트는 1로 인덱싱돼요. | | 예제 | bit_position('010'::BITSTRING, '1110101'::BITSTRING) | | 결과 | 4 |

bitstring(bitstring, length)

| 설명 | 결정된 길이의 비트 문자열을 반환해요. | | 예제 | bitstring('1010'::BITSTRING, 7) | | 결과 | 0001010 |

get_bit(bitstring, index)

| 설명 | 비트 문자열에서 n번째 비트를 추출해요. 첫 번째(가장 왼쪽) 비트는 0으로 인덱싱돼요. | | 예제 | get_bit('0110010'::BITSTRING, 2) | | 결과 | 1 |

length(bitstring)

| 설명 | bit_length의 별칭. | | 예제 | length('1101011'::BITSTRING) | | 결과 | 7 |

octet_length(bitstring)

| 설명 | 비트 문자열의 바이트 수를 반환해요. | | 예제 | octet_length('1101011'::BITSTRING) | | 결과 | 1 |

set_bit(bitstring, index, new_value)

| 설명 | 비트 문자열의 n번째 비트를 newvalue로 설정해요. 첫 번째(가장 왼쪽) 비트는 0으로 인덱싱돼요. 새 비트 문자열을 반환해요. | | 예제 | set_bit('0110010'::BITSTRING, 2, 0) | | 결과 | 0100010 |

Bitstring 집계 함수

다음 집계 함수는 BIT 타입에 사용할 수 있어요.

이름 설명
bit_and(arg) 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 AND 연산을 반환해요.
bit_or(arg) 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 OR 연산을 반환해요.
bit_xor(arg) 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 XOR 연산을 반환해요.
bitstring_agg(arg) arg에 정의된 각 고유 위치에 대해 비트가 설정된 비트 문자열을 반환해요.
bitstring_agg(arg, min, max) arg에 정의된 각 고유 위치에 대해 비트가 설정된 비트 문자열을 반환해요. 모든 위치는 [min, max] 범위 내에 있어야 하며, 그렇지 않으면 Out of Range Error가 발생해요.

bit_and(arg)

| 설명 | 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 AND 연산을 반환해요. | | 예제 | bit_and(A) |

bit_or(arg)

| 설명 | 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 OR 연산을 반환해요. | | 예제 | bit_or(A) |

bit_xor(arg)

| 설명 | 주어진 표현식의 모든 비트 문자열에 대해 수행된 비트 XOR 연산을 반환해요. | | 예제 | bit_xor(A) |

bitstring_agg(arg)

| 설명 | bitstring_agg 함수는 어떤 정수 타입이든 입력으로 받아 각 고유 값에 대해 비트가 설정된 비트 문자열을 반환해요. 가장 왼쪽 비트는 컬럼의 가장 작은 값을, 가장 오른쪽 비트는 최대값을 나타내요. 가능하면 min과 max는 컬럼 통계에서 검색돼요. 그렇지 않으면 min과 max 값을 직접 제공할 수도 있어요. | | 예제 | bitstring_agg(A) |

bit_countbitstring_agg의 조합은 count(DISTINCT ...)의 대안으로 사용될 수 있으며, 카디널리티가 낮고 값이 조밀한 경우 성능이 개선될 수 있어요.

bitstring_agg(arg, min, max)

| 설명 | arg에 정의된 각 고유 위치에 대해 비트가 설정된 비트 문자열을 반환해요. 모든 위치는 [min, max] 범위 내에 있어야 하며, 그렇지 않으면 Out of Range Error가 발생해요. | | 예제 | bitstring_agg(A, 1, 42) |

더 알아보기 (Learn more)

  • BITSTRING 타입 문서에서 비트 문자열 데이터 타입을 확인해요.