Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BITFungsi _OR
Fungsi BIT _OR menjalankan operasi OR bit-wise pada semua nilai dalam kolom atau ekspresi integer tunggal. Fungsi ini menggabungkan setiap bit dari setiap nilai biner yang sesuai dengan setiap nilai integer dalam ekspresi.
Misalnya, tabel Anda berisi empat nilai integer dalam kolom: 3, 7, 10, dan 22. Bilangan bulat ini direpresentasikan dalam bentuk biner sebagai berikut.
Bilangan Bulat | Nilai biner |
---|---|
3 | 11 |
7 | 111 |
10 | 1010 |
22 | 10110 |
Jika Anda menerapkan fungsi BIT _OR ke kumpulan nilai integer, operasi mencari nilai apa pun di mana a 1
ditemukan di setiap posisi. Dalam hal ini, a 1
ada di lima posisi terakhir untuk setidaknya satu dari nilai, menghasilkan hasil biner00011111
; oleh karena itu, fungsi mengembalikan 31
(atau16 + 8 + 4 + 2 + 1
).
Sintaks
BIT_OR ( [DISTINCT | ALL] expression )
Argumen
- ekspresi
-
Kolom target atau ekspresi tempat fungsi beroperasi. Ekspresi ini harus memilikiINT,INT2, atau tipe INT8 data. Fungsi mengembalikan setaraINT,INT2, atau tipe INT8 data.
- DISTINCT | ALL
-
Dengan argumenDISTINCT, fungsi menghilangkan semua nilai duplikat untuk ekspresi yang ditentukan sebelum menghitung hasilnya. Dengan argumenALL, fungsi mempertahankan semua nilai duplikat. ALLadalah default. Untuk informasi selengkapnya, lihat DISTINCTdukungan untuk agregasi bit-wise.
Contoh
Kueri berikut menerapkan fungsi BIT _OR ke LIKES kolom dalam tabel yang disebut USERLIKES dan mengelompokkan hasil menurut CITY kolom.
select city, bit_or(likes) from userlikes group by city order by city; city | bit_or --------------+-------- Los Angeles | 127 Sacramento | 255 San Francisco | 255 San Jose | 255 Santa Barbara | 255 (5 rows)
Untuk empat kota yang terdaftar, semua jenis acara disukai oleh setidaknya satu pengguna (255=11111111
). Untuk Los Angeles, semua jenis acara kecuali olahraga disukai oleh setidaknya satu pengguna (127=01111111
).