oracle資料庫的case方法的簡單使用

2022-07-23 12:09:12 字數 1026 閱讀 2988

case可以根據查詢出來的列值選擇性的改變值。舉個栗子,有乙個簡單的表如學生表,學生表有個性別字段,但是這個字段型別時char(1)型別的,而想要取出的性別是中文顯示的對應關係如下:(1:男,2:女,3:其他)這樣的情況可以使用case 解決:現在假設要取出student表中的name,id,gender,(gender欄位使用對應的中文替代):

select

st.name,

st.name,

case

st.gender

when'1

'then'男

'when'2

'then'女

'when'3

'then'其他

'end

from

student st

此外case when還有個很好的用途,就是可以在某個欄位為空時取另外的字段

如下:

select

t.username

asname,

case

when ( t.alias_name is

null

or length( t.alias ) =

0 ) then

t.username

when ( t.alias_name is

notnull

and length( t.alias_name ) >

0 ) then

t.alias_name

else

''end

asaliasname

from

forum_user t

where

user_grade ='

normal

'

上面sql作用時,forum_user表中取user_grade為normal的username、alias_name欄位。當ailas_name為空或者空字元長度為0時取username,當alias_name不為空且字元長度大於0時取alias_name,否則返回空字元。

Oracle資料庫UNION語句的使用方法

當若干個業務邏輯不同但輸出字段相同的sql語句需要聯合查詢單一結果時,可使用union語句,如 select personid as id,cnname as al,3 as gid from a union select f pid as id,cnname as al,group as gid ...

資料庫case 和 decode 區別

7.在員工表中查詢出員工的工資,並計算應交稅款 如果工 資小於1000,稅率為0,如果工資大於等於1000並小於2000,稅率為10 如果工資大於等於2000並小於3000,稅率為 15 如果工資大於等於3000,稅率為20 select sal case when sal 1000 then 0 ...

plsql 連線oracle資料庫的2種方式

該檔案在instantclient資料夾中,我直接將instantclient拷貝到了plsql的根目錄下 路徑 修改 該檔案用於配置資料庫連線位址,配置好後,訪問該資料庫不再需要通過ip port instance,可以直接通過別名來訪問該資料庫 資料庫訪問位址別名 隨便起 database te...