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 碼值,...