操作符
求差集操作符:MINUS
vastbase=# select * from dept vastbase-# minus vastbase-# select * from dept where deptno=10; deptno | dname | loc --------+------------+--------- 30 | SALES | CHICAGO 20 | RESEARCH | DALLAS 40 | OPERATIONS | BOSTON (3 rows)
不等于操作符:^=
vastbase=# select 1^=1 from dual; ?column? ---------- f (1 row)
时间 + 整数操作符:date + int
vastbase=# select sysdate,sysdate+1; sysdate | ?column? ---------------------+--------------------- 2020-09-25 15:24:48 | 2020-09-26 15:24:48 (1 row)
时间 - 整数操作符:date – int
vastbase=# select sysdate,sysdate-1; sysdate | ?column? ---------------------+--------------------- 2020-09-25 15:25:56 | 2020-09-24 15:25:56 (1 row)
时间与字符的比较
vastbase=# select sysdate>'2020-05-17'::text,sysdate; ?column? | sysdate ----------+--------------------- t | 2020-09-25 15:28:00 (1 row) vastbase=# select sysdate>='2020-05-17'::text,sysdate; ?column? | sysdate ----------+--------------------- t | 2020-09-25 15:28:56 (1 row) vastbase=# select sysdate<'2020-05-17'::text,sysdate; ?column? | sysdate ----------+--------------------- f | 2020-09-25 15:29:09 (1 row) vastbase=# select sysdate<='2020-05-17'::text,sysdate; ?column? | sysdate ----------+--------------------- f | 2020-09-25 15:29:20 (1 row) vastbase=# select sysdate='2020-05-17'::text,sysdate; ?column? | sysdate ----------+--------------------- f | 2020-09-25 15:29:31 (1 row)
时间 - 时间操作符:date – date
vastbase=# select sysdate-(sysdate-11); ?column? ---------- 11 days (1 row)
数值类型+/- 字符 操作符
select 1::int+'1'::text; select 1::smallint+'1'::text; select 1::bigint-'1'::text; select 1::int-'1'::text; select 1::smallint-'1'::text; select 1.1::float+'1'::text; select 1.1::double precision+'1'::text; select 1.1::number+'1'::text; select 1.1::float-'1'::text; select 1.1::double precision-'1'::text; select 1.1::number-'1'::text;
执行如下:
vastbase=# select 1::int+'1'::text; ?column? ---------- 2 (1 row) vastbase=# select 1::smallint+'1'::text; ?column? ---------- 2 (1 row) vastbase=# select 1::bigint-'1'::text; ?column? ---------- 0 (1 row) vastbase=# select 1::int-'1'::text; ?column? ---------- 0 (1 row) vastbase=# select 1::smallint-'1'::text; ?column? ---------- 0 (1 row) vastbase=# select 1.1::float+'1'::text; ?column? ---------- 2.1 (1 row)vastbase=# select 1.1::double precision+'1'::text; ?column? ---------- 2.1 (1 row)vastbase=# select 1.1::number+'1'::text; ?column? ---------- 2.1 (1 row) vastbase=# select 1.1::float-'1'::text; ?column? ---------- .1 (1 row) vastbase=# select 1.1::double precision-'1'::text; ?column? ---------- .1 (1 row) vastbase=# select 1.1::number-'1'::text; ?column? ---------- .1 (1 row)
数值类型 *、/ 字符 操作符
select 3::smallint/'2'::text; select 3::bigint/'2'::text; select 3::int/'2'::text; select 3::int*'2'::text; select 3::bigint*'2'::text; select 3::smallint*'2'::text; select 3.8::float/'2'::text; select 3.8::double precision /'2'::text; select 3.8::number /'2'::text; vastbase=# select 3::smallint/'2'::text; ?column? ---------- 1.5 (1 row) vastbase=# select 3::bigint/'2'::text; ?column? ---------- 1.5 (1 row) vastbase=# select 3::int/'2'::text; ?column? ---------- 1.5 (1 row) vastbase=# select 3::int*'2'::text; ?column? ---------- 6 (1 row) vastbase=# select 3::bigint*'2'::text; ?column? ---------- 6 (1 row) vastbase=# select 3::smallint*'2'::text; ?column? ---------- 6 (1 row) vastbase=# select 3.8::float/'2'::text; ?column? ---------- 1.9 (1 row) vastbase=# select 3.8::double precision /'2'::text; ?column? ---------- 1.9 (1 row) vastbase=# select 3.8::number /'2'::text; ?column? ---------- 1.9 (1 row)
数值型与字符型的比较
select 1='1'::text; select 10='1'::text; select 10>'1'::text; select 10>='1'::text; select 10<='1'::text; select 10<'1'::text; select 10<>'1'::text; select 10::float <>'1'::text; select 10::float >'1'::text; select 10::float >='1'::text; select 10::float <='1'::text; select 10::float <'1'::text; vastbase=# select 1='1'::text; ?column? ---------- t (1 row) vastbase=# select 10='1'::text; ?column? ---------- f (1 row) vastbase=# select 10>'1'::text; ?column? ---------- t (1 row) vastbase=# select 10>='1'::text; ?column? ---------- t (1 row) vastbase=# select 10<='1'::text; ?column? ---------- f (1 row) vastbase=# select 10<'1'::text; ?column? ---------- f (1 row) vastbase=# select 10<>'1'::text; ?column? ---------- t (1 row) vastbase=# select 10::float <>'1'::text; ?column? ---------- t (1 row) vastbase=# select 10::float >'1'::text; ?column? ---------- t (1 row) vastbase=# select 10::float >='1'::text; ?column? ---------- t (1 row) vastbase=# select 10::float <='1'::text; ?column? ---------- f (1 row) vastbase=# select 10::float <'1'::text; ?column? ---------- f (1 row)
连接操作符||
vastbase=# select empno||ename from emp; ?column? ------------ 7369SMITH 7499ALLEN 7521WARD 7566JONES 7654MARTIN 7698BLAKE 7782CLARK 7839KING 7844TURNER 7900JAMES 7902FORD 7934MILLER (12 rows)