條件子句使用比較運算子比較兩個選項,重要的是要理解這兩個選項的資料型別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
&&salary相當於引用了&salary的值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已經在當前session下儲存了,可以使用undefine salary解除。
define(定義變數)、undefine(解除變數)
sql> undefine emp_num ; –取消變數--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
如果不想顯示「原值」和「新值」的提示,可以使用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。這...