Oracle之Where子句中常用的運算子

2021-07-25 15:03:31 字數 4104 閱讀 9948

sql> select ename,job,sal,comm from emp where job = 'salesman'

or job = 'president'

and sal > 1500;

ename job sal comm

---------- --------- --------- ---------

allen salesman 1600.00

300.00

ward salesman 1250.00

500.00

martin salesman 1250.00

1400.00

king president 5000.00

turner salesman 1500.00

0.00

條件子句使用比較運算子比較兩個選項,重要的是要理解這兩個選項的資料型別

1000

and1500;

ename sal

---------- ---------

ward 1250.00

martin 1250.00

turner 1500.00

adams 1100.00

miller 1300.00

between低值and高值,包括低值和高值

在where子句中使用like謂詞,常使用特殊符號%_匹配查詢內容,也可以使用escape取消特殊符號的作用

sql>

create table test (name char(10));

insert into test values ('sfdl');

insert into test values ('aedlhh');

insert into test values ('a%dmh');

commit;

sql> select * from test;

name

----------

sfdl

aedlhh

a%dmh

sql> select * from test where name like 'a\%%' escape '\';

name

----------

a%dmh

''內表示字元或日期資料型別,而""一般使用者別名中有大小寫、保留字、空格等場合,用recyclebin中的《表名》頁需要"".

sql> select empno||' is scott''s empno' from emp where empno = 7788;

empno||'isscott''sempno'

---------------------------

7788 is scott's empno

sql> select empno,ename,sal,mgr from emp where mgr in(7902,7566,7788);

empno ename sal mgr

----- ---------- --------- -----

7369 smith 800.00

7902

7788 scott 3000.00

7566

7876 adams 1100.00

7788

7902 ford 3000.00

7566

sql> select empno,ename from emp where empno=&empnumber;

輸入 empnumber 的值: 7788

empno ename

---------- ----------

7788 scot

&後面是字元型的,注意單引號問題,可以有兩種寫法:

sql> select empno,ename from emp where ename='&emp_name';

輸入 emp_name 的值: scott

empno ename

---------- ----------

7788 scott

sql> select empno,ename from emp where ename=&emp_name;

輸入 emp_name 的值: 'scott'

empno ename

---------- ----------

7788 scott

&&儲存了第一次輸入的值,使後面的相同的&不再提問,自動取代

sql> select empno,ename,&&salary from emp where deptno=10

order

by &salary;

輸入 salary 的值: sal

empno ename sal

---------- ---------- ----------

7934 miller 1300

7782 clark 2450

7839 king 5000

&&salary相當於引用了&salary的值

注:上面的&salary已經在當前session下儲存了,可以使用undefine salary解除。

define(定義變數)、undefine(解除變數)

--define:顯示當前已經定義的變數(包括預設值)

sql> define

define _sqlplus_release = "000000000" (char)

define _editor = "plsqldev" (char)

define _date = "2016/12/25" (char)

define _privilege = "" (char)

define _o_version = "" (char)

define _o_release = "000000000" (char)

define _user = "scott" (char)

define _connect_identifier = "orcl" (char)

define salary = "sal" (char)

--set define on; 開啟&

--set define off; 關閉&

sql> define emp_num = 7788;

sql> select empno,ename,sal from emp where empno = &emp_num;

empno ename sal

----- ---------- ---------

7788 scott 3000.00

sql> undefine emp_num ; –取消變數

如果不想顯示「原值」和「新值」的提示,可以使用set verify on|off 命令

sql> select ename,job from emp where job not

in('clerk','manager','analyst');

ename job

---------- ---------

allen salesman

ward salesman

martin salesman

king president

turner salesman

where子句中的and和or的影響

and 和 or 的執行條件 select from emp where deptno 10 or comm is not null or sal 2000 and deptno 20 在這個例項中where子句找到了如下的資料 or將前後的關係並列,有or的出現,使where子句進行分段。效果相當...

WHERE子句之In Like語句

where子句之in語法 where子句之like語法 where子句之in語法 where子句之in語法的作用 允許在where子句中規定過個值 語法 select column name from table name where column name in value1,value2.事實上...

關於where子句中的子查詢語法說明

首先說一句,大神就不用看了。先看乙個sql語句 select distinct name from user u1 where select count from user u2 where u1.name u2.name 3 這句話是選出user表中name欄位相同的名字出現三次以上的name。這...