Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


<<(位左移)

📄字数 455
👁️阅读量 加载中...

功能描述

将二进制数的所有位向左移动指定的位数。<< 不仅可作为位运算符,亦可作为几何运算符 <<

语法格式

L_OPERAND_TYP << R_OPERAND_TYP

输入参数

L_OPERAND_TYP(左操作数类型)R_OPERAND_TYP(右操作数类型)RET_TYPE(返回类型)
VARBITINTEGERVARBIT
BIGINTBIGINTBIGINT

提示

R_OPERAND_TYP 移位数为负数时,将往反方向移位。

输出结果

输出结果的类型根据输入参数类型决定,表1展示输入类型以及返回类型。若 L_OPERAND_TYPR_OPERAND_TYP 任意输入参数为 NULL ,则输出结果为 NULL。

示例

sql
-- 对二进制VARBIT类型字符串101向左移动 2 位。
SQL> SELECT b'1011' << 2;

+---------+
|  EXPR1  |
+---------+
| b'1100' |
+---------+

-- 对BITINT类型数据向左移动 2 位。
SQL> SELECT 1 << 2;

+-------+
| EXPR1 |
+-------+
| 4     |
+-------+

-- BIGINT类型的按位左移位运算支持隐式转换成BIGINT类型。
SQL> CREATE TABLE tab_tt(c1 TINYINT, c2 SMALLINT, c3 INT, c4 FLOAT, c5 DOUBLE, c6 VARCHAR, c7 NUMERIC);

SQL> INSERT INTO tab_tt VALUES(1, 2, 3, 4.3, 5.6, '4', 1.5);

SQL> SELECT c1 << c1, c2 << c2, c3 << c4, c4 << c4, c5 << c5, c6 << c6, c7 << c7 FROM tab_tt;

+-------+-------+-------+-------+-------+-------+-------+
| EXPR1 | EXPR2 | EXPR3 | EXPR4 | EXPR5 | EXPR6 | EXPR7 |
+-------+-------+-------+-------+-------+-------+-------+
| 2     | 8     | 48    | 64    | 384   | 64    | 8     |
+-------+-------+-------+-------+-------+-------+-------+