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 ini 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 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 didukung.
Metode << untuk LEFT_SHIFT fungsi saat ini tidak didukung di Microsoft Fabric.
Contoh
Dalam contoh berikut, nilai bilangan bulat 12.345 digeser kiri oleh 5 bit.
SELECT LEFT_SHIFT(12345, 5);
Hasilnya adalah 395.040. Jika Anda mengonversi 12.345 ke biner, Anda memiliki 0011 0000 0011 1001. Menggeser 0110 0000 0111 0010 0000nilai ini ke kiri oleh 5 bit 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 oleh 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 |