DB2 SQL語句筆記

2021-08-31 05:50:25 字數 1699 閱讀 1939

1、case when語句

sql中的case when使用,case具有兩種格式:簡單case函式和case搜尋函式。

--簡單case函式

case ***

when '1' then '男'

when '2' then '女'

else '其他'

end

--case搜尋函式

case

when *** = '1' then '男'

when *** = '2' then '女'

else '其他'

end

這兩種方式,可以實現相同的功能。簡單case函式的寫法相對比較簡潔,但是和case搜尋函式相比,功能方面會有些限制,比如寫判斷式。

還有乙個需要注意的問題,case函式只返回第乙個符合條件的值,剩下的case部分將會被自動忽略。

--比如說,下面這段sql,你永遠無法得到「第二類」這個結果

case

when col_1 in ( 'a', 'b') then '第一類'

when col_1 in ('a')       then '

第二類'

else'其他'

end 2、

db2基本函式

取得時間的年月日:year(current_date) month(current_date) day(current_date)

往後10天  current_date + 10 day

往後1乙個月 current_date + 1 month

往後1年 current_date + 1 year

往前相減即可

字串:

trim(' aa ')='aa' 去頭尾的空字元

length('aa')=2            計算長度

substr('abcdefg',1,2)='ab'  從第1個開始往後截2個

其他:coalesce(列,預設值)  把空值查詢為預設值

字元轉換為數字:

decimal(列,10,2) 10表示長度,2表示精度

db2 備份還原命令:

db2 backup db 資料庫名字 to d:/

db2 restore db 資料名 from 目錄3、

top    n   sql語句

oracle資料庫

select * from table1 where rownum<=n

infomix資料庫

select first n * from table1

db2資料庫

select * row_number() over(order by col1 desc) as rownum where rownum<=n

或者 select column from table fetch first n rows only

sql server資料庫

select top n * from table1

sybase資料庫

set rowcount n

go select * from table1

mysql資料庫

select * from table1 limit n

foxpro資料庫

select * top n from table order by column

db2sql語句優化

最經專案中要用到乙個樹形載入結構,由於底層資料有點多,再加上sql語句沒有怎麼優化,所以頁面資料載入的時候特別慢。只查詢底層資料的話就需要七八秒中,後來經過別人的指點從新優化sql後,底層資料的載入查詢控制在了200毫秒以為。現在就貼上我的sql語句,供大家看一下 沒有優化的sql語句 select...

DB2 SQL語句的優化

最近在做一銀行的優化專案,由於正在學習中,所以做的一些筆記 1.sql語句除了引號內的特殊字元,其他的語句都要大寫。2.多表聯查,資料量按從少到多排列,當然第乙個主表通常資料量比較大,因為第乙個表通常為主表,但是從第二個表就要資料量從少到多排列了 如果遇到兩張表的資料一大一小,小表只能跟大表關聯,大...

更多簡單而實用的 DB2 SQL 語句

start 檢視當前時間 values current time 檢視當前日期 values current date 檢視當前時間戳 values current timestamp 檢視當前時區 values current timezone 檢視使用者 values user 檢視系統使用者 ...