Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2022 (16.x)
Azure SQL Database
AzureSQL Managed Instance
Titik akhir analitik SQL di Microsoft Fabric
Warehouse di Microsoft Fabric
SQL database di Microsoft Fabric
LEFT_SHIFT mengambil dua parameter, dan mengembalikan parameter pertama yang digeser bit ke kiri oleh jumlah bit yang ditentukan dalam parameter kedua.
Fungsi LEFT_SHIFT juga dapat diakses melalui << operator.
Sintaks
LEFT_SHIFT ( expression_value, shift_amount )
expression_value << shift_amount
Argumen
expression_value
Bilangan bulat atau ekspresi biner apa pun yang bukan objek besar (LOB).
shift_amount
Jumlah bit yang expression_value harus digeser. shift_amount harus berupa tipe bilangan bulat.
Jenis yang dikembalikan
Mengembalikan jenis yang sama dengan expression_value.
Parameter shift_amount dilemparkan ke bigint. Parameternya bisa positif atau negatif, dan juga bisa lebih besar dari jumlah bit dalam jenis data expression_value. Ketika shift_amount negatif, pergeseran beroperasi ke arah yang berlawanan. Misalnya, LEFT_SHIFT (expr, -1) sama dengan RIGHT_SHIFT (expr, 1). Ketika shift_amount lebih besar dari jumlah bit dalam expression_value, hasil yang dikembalikan adalah 0.
LEFT_SHIFT melakukan pergeseran logis. Setelah bit digeser, posisi kosong apa pun akan diisi oleh 0, terlepas dari apakah nilai aslinya positif atau negatif.
Keterangan
Dalam implementasi awal, fungsionalitas Kueri Terdistribusi untuk fungsi manipulasi bit dalam server tertaut atau kueri ad hoc (OPENQUERY) tidak akan didukung.
Metode << untuk LEFT_SHIFT fungsi saat ini tidak didukung di Microsoft Fabric.
Contoh
Dalam contoh berikut, nilai bilangan bulat 12345 digeser kiri oleh 5 bit.
SELECT LEFT_SHIFT(12345, 5);
Hasilnya adalah 395040. Jika Anda mengonversi 12345 ke biner, Anda memiliki 0011 0000 0011 1001. Menggeser 0110 0000 0111 0010 0000ini ke kiri oleh 5 menjadi , yang dalam 395040 desimal.
Tabel berikut menunjukkan apa yang terjadi selama setiap shift.
| Nilai bilangan bulat | Nilai biner | Deskripsi |
|---|---|---|
| 12345 | 0011 0000 0011 1001 |
Nilai awal |
| 24690 | 0110 0000 0111 0010 |
Geser ke kiri 1 |
| 49380 | 1100 0000 1110 0100 |
Geser ke kiri 2 |
| 98760 | 0001 1000 0001 1100 1000 |
Geser ke kiri 3, dan buka ke byte baru |
| 197520 | 0011 0000 0011 1001 0000 |
Geser ke kiri 4 |
| 395040 | 0110 0000 0111 0010 0000 |
Geser ke kiri 5 |