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 檢視系統使用者 ...