DB2分頁語句,DB2字元型數字列排序

2021-09-30 05:44:43 字數 1431 閱讀 4803

1.db2分頁語句(第3到第6條記錄):

select * from

(select row_number() over() as num,id ,name from bas_user order by id) bas_user

where bas_user.num >= 3 and bas_user.num <= 6;

2.按字元型數字列排序:

select

volt_id  as  voltid,

station_id  as stationid,

volt_name   as voltname,

vol_type as voltype,

is_compute_balance as iscomputebalance 

from

pgma.m_volt_level  

where station_id=652  

order by dec(substr(volt_name,1,posstr(volt_name,'kv')-1)) desc;

3.聚合函式,日期相減

select second(timestamp(c.t))-second(timestamp(g.t)) time,

sum(case when a.seq='a' then c.value end) a,

sum(case when a.seq='b' then c.value end) b,

sum(case when a.seq='c' then c.value end) c

from dat_rmsid a

inner join dat_rms c on a.oid=c.rmsid

inner join (select min(e.t) t

from dat_rmsid d,dat_rms e

where d.oid=e.rmsid

and exists (select 1 from dat_rmsid f where oid=5 and d.chv_oid = e.chv_oid and d.starttime=f.starttime)) g on(1 = 1)

where

exists (select 1 from dat_rmsid b where oid=5 and a.chv_oid = b.chv_oid and a.starttime=b.starttime)

group by second(timestamp(c.t))-second(timestamp(g.t));

4.兩個數求和,其中乙個數為null結果就為null, 解決這種問題可以用以下函式(sql,db2,oracle通用):

coalesce(a.comvalue,0)

5.查詢前n條記錄:

select * from tbi_ettproj fetch first 100 rows only;

db2分頁查詢

在mysql中,實現分頁查詢比較方便,只需要傳入查詢開始的條數start和要查詢多少條資料即每頁顯示多少條資料limit就可以 db2和oracle實現分頁的方式類似,所需要的引數為要查詢的資料開始的條數start,結尾的條數end,並且在sql語句中還需要設定row number oracle中為...

DB2分頁結果錯亂

以前用的很好的db2分頁程式,突然出現結果錯亂,第一頁中的內容,在第二頁中也出現,檢查原因,發現是因為order by 的字段有重複的值引起的 oracle下同樣會有這個問題 比如 order by sno 如果sno欄位的值有重複的,就會出現這個問題。以前的分頁語句 select from sel...

DB2字元處理函式

字串連線運算 db2中使用的是 一 字元轉換函式 1 ascii 返回字元表示式最左端字元的ascii 碼值。在ascii 函式中,純數字的字串可不用 括起來,但含其它字元的字串必須用 括起來使用,否則會出錯。2 char 將ascii 碼轉換為字元。如果沒有輸入0 255 之間的ascii 碼值,...