條件表示式的通用寫法在 mysql 和 oracle 均可正常使用。建議使用通用寫法,保證可重用性。因為一旦公司因為某些原因要更換資料庫,使用通用寫法移植成本會適當降低。
1、給 emp 表中員工起中文名
select e.ename
,case e.ename
when
'smith'
then
'史密斯'
when
'allen'
then
'艾倫'
when
'ward'
then
'沃德'
else
'無名'
endfrom emp e;
如果想要讓其餘的名字變為 null,可以參考下面的寫法,不寫 else 語句。
select e.ename
,case e.ename
when
'smith'
then
'史密斯'
when
'allen'
then
'艾倫'
when
'ward'
then
'沃德'
endfrom emp e;
2、判斷 emp 表中員工工資。如果高於 3000 顯示「高收入」,如果高於 1500 低於 3000 顯示「中等收入」,其餘顯示「低收入」。
select e.sal
,case
when e.sal >
3000
then
'高收入'
when e.sal >
1500
then
'中等收入'
else
'低收入'
endfrom emp e;
oracle 中除了起別名,都用單引號。所以下面的別名使用了雙引號,即"中文名"。加了單引號的話會報錯。
給 emp 表中員工起中文名
select e.ename,
decode(e.ename,
'smith'
,'史密斯'
,'allen'
,'艾倫'
,'ward'
,'沃德'
,'無名'
)"中文名"
from emp e;
別名不加雙引號,也不加單引號也是可以的。
select e.ename,
decode(e.ename,
'smith'
,'史密斯'
,'allen'
,'艾倫'
,'ward'
,'沃德'
,'無名'
) 中文名
from emp e;
Oracle資料庫學習筆記 一
微軟 sql server 和 access 瑞典mysql ab公司 mysql ibm公司 db2 美國sybase公司 sybase ibm公司 informix 美國oracle公司 oracle 小型資料庫 access 中型資料庫 sql server mysql informix 大型...
資料庫 Oracle學習筆記(1)
類class class student 學生物件public class student byte b 100 int i 10000 double d 3.14 char c 我 boolean f true id name age1001 張三30 1002 李四25 nickname pas...
資料庫 Oracle學習筆記(4)
select from emp 查詢表中所有列 select ename,sal from emp 查詢表中ename列,和sal列 select concat ename,的工資是 from emp smith的工資是 smith的工資是 sal smith的工資是800 select conca...