bit_shift_left
Описание
Сдвигает двоичное представление числового выражения влево на указанное количество битов.
Эта функция выполняет арифметический левый сдвиг, при котором длина бита не изменяется, в конец добавляется 0, а старший бит остается неизменным. Например, сдвиг 10101 влево на один бит дает 11010.
Синтаксис
bit_shift_left(value, shift)
Параметры
value: значение или числовое выражение для сдвига. Поддерживаемые типы данных: TINYINT, SMALLINT, INT, BIGINT и LARGEINT.
shift: количество битов для сдвига. Поддерживаемый тип данных: BIGINT.
Возвращаемое значение
Возвращает значение того же типа, что и value.
Примечания по использованию
- Если любой входной параме тр равен NULL, возвращается NULL.
- Если
shiftменьше 0, возвращается 0. - Сдвиг
valueна0всегда дает исходноеvalue. - Сдвиг
0на любоеshiftвсегда дает0. - Если тип данных
valueявляется числовым, но не целым числом, это значение будет приведено к целому числу. См. Примеры. - Если тип данных
valueявляется строкой, значение будет приведено к целому числу, если это возможно. Если значение нельзя привести к целому числу, оно будет обработано как NULL. См. Примеры.
Примеры
Используйте эту функцию для сдвига числовых значений.
SELECT bit_shift_left(2, 1);
+----------------------+
| bit_shift_left(2, 1) |
+----------------------+
| 4 |
+----------------------+
SELECT bit_shift_left(2.2, 1);
+------------------------+
| bit_shift_left(2.2, 1) |
+------------------------+
| 4 |
+------------------------+
SELECT bit_shift_left("2", 1);
+------------------------+
| bit_shift_left('2', 1) |
+------------------------+
| 4 |
+------------------------+
SELECT bit_shift_left(-2, 1);
+-----------------------+
| bit_shift_left(-2, 1) |
+-----------------------+
| -4 |
+-----------------------+