|(按位或)
📄字数 756
👁️阅读量 加载中...
功能描述
将两个表示为二进制操作数进行按位或计算。
语法格式
L_OPERAND_TYP | R_OPERAND_TYP
输入参数
L_OPERAND_TYP(左操作数类型) | R_OPERAND_TYP(右操作数类型) | RET_TYPE(返回类型) |
---|---|---|
VARBIT | VARBIT | VARBIT |
BIGINT | BIGINT | BIGINT |
提示
|
按位或运算符,若两个操作数为VARBIT类型且位数不等时,对较短的操作数左侧补零,再执行计算。
输出结果
输出结果的类型根据输入参数类型决定,表1展示输入类型以及返回类型。若 L_OPERAND_TYP
或 R_OPERAND_TYP
任意输入参数为 NULL ,则输出结果为 NULL。
示例
sql
-- 对二进制VARBIT类型字符串101和1011进行按位或运算。
SQL> SELECT b'101' | b'1011';
+---------+
| EXPR1 |
+---------+
| b'1111' |
+---------+
-- 对BIGINT类型数据进行按位或运算。
SQL> SELECT 9223372036854775800 | 9223372036854775705;
+---------------------+
| EXPR1 |
+---------------------+
| 9223372036854775801 |
+---------------------+
--浮点数运算,将数值1.5和1.1显式地转换为FLOAT类型,再进行按位或运算,返回类型为BIGINT。
SQL> SELECT 1.5::FLOAT | 1.1::FLOAT;
+-------+
| EXPR1 |
+-------+
| 3 |
+-------+
-- 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 | c3, c4 | c4, c5 | c5, c6 | c6, c7 | c7 FROM tab_tt;
+-------+-------+-------+-------+-------+-------+-------+
| EXPR1 | EXPR2 | EXPR3 | EXPR4 | EXPR5 | EXPR6 | EXPR7 |
+-------+-------+-------+-------+-------+-------+-------+
| 1 | 2 | 3 | 4 | 6 | 4 | 2 |
+-------+-------+-------+-------+-------+-------+-------+