sql語句 db2的一些簡單方法,

2021-10-14 07:19:29 字數 2728 閱讀 8325

擷取字串前後位

select substr(

'12345678',2

,length(

'12345678')-

2)from sysibm.sysdummy1

空欄位處理

coalesce

(col_name,'')

--如果欄位con_name為null時返回空字串("")

相當於oracle的:

nvl(expr1,expr2)

--如果expr1為null,則nvl返回expe2

nvl2(expr1,expr2,expr3)

--如果expr1不為null,則nvl返回expe2;如果expr1為null,則nvl返回expe3

cast是db2或oracle中強制型別轉換函式,使用方法如下:

--cast(expression as data_type)

--例如:

--cast (id as varchar(10))在使用中需要注意的是,如果id長度大於10 ,會報錯;

--cast(id as int) 若id之前為字元形式,且字串中包括空格,則也會報錯,db中報-420錯誤;

--若expression 為null或'',轉換時會報錯;

--例如將'2013-10-14'這個字串轉換成20131014應該怎麼寫

select cast(

date

('2013-10-14')as

int)

from sysibm.dual

decimal資料型別計算

select cast(

round

((countnum*

0.6/

0.8),6

)asdecimal(11

,6))

from points_rule

計算4/26的百分率:保留兩位小數

select cast(cast(4*

100as

decimal)/

26as

decimal(18

,2))

from sysibm.sysdummy1

trim()函式

rtrim()(去掉字串右邊的空格)、ltrim()(去掉字串左邊的空格)以及trim()(去掉字串左右兩邊的空格)

拼接字串:

--right('*******' || rtrim(char('#####')),n)

--一般要寫n個"*",如果"#"的位數不足時,左邊用"*"補夠n位;如果"#"的位數是0時,全用"*"補全,

--如果不寫n個"*",當"#"的位數為0時會報錯,所以一般寫n個"*"。

select

'khc'

||right

('**********'

|| rtrim(

char

('22++'))

,10)from sysibm.dual;

--right('000000000' || rtrim(char(id)),9)

merge into 詳細介紹 :

--merge語句是oracle9i新增的語法,用來合併update和insert語句。 

--通過merge語句,根據一張表或子查詢的連線條件對另外一張表進行查詢,

--連線條件匹配上的進行update,無法匹配的執行insert。

--這個語法僅需要一次全表掃瞄就完成了全部工作,執行效率要高於insert+update。

merge

into table01 t1

using

(select

'1001'

as a,

2as b from table02) t2

on( t1.a=t2.a)

when

matched

then

update

set t1.b= t2.b

when

notmatched

then

insert

(a,b)

values

(t2.a,t2.b)

;

對資料按adress分組,並給每組新增唯一標誌

merge

into customermsg_qh a

using

(select

*from

(select row_number(

)over

(partition

by adress) rownum,idnum,adress from customermsg_qh

) b where b.rownum =1)

as c on a.adress = c.adress

when

matched

then

update

set a.flag = c.idnum

跟蹤DB2的sql語句

查到了以下資料 修改一下db zhang的建議.db2 update monitor switches using bufferpool lock sort statement table timestamp uow on是基於程序 除此之外還可以更改dbm引數 會影響效能 dft mon bufp...

DB2中一些常用sql函式

1.merge into using when matched then 應用場景 此函式一般用於表與表之間欄位的更新,判斷 表和 表是否滿足on中條件,如果滿足則用b表去更新a表,如果不滿足,則將b表資料插入a表,是有有很多可選項。用例 有乙個表t,有兩個欄位a b,我們想在表t中做insert ...

DB2中的一些函式

最近用db2,資料庫之間的差異還是很大的,好多函式都不一樣 1.去空格 db2中 ltrim 是去左邊空格,rtrim 是去右邊空格。informix中 trim 就是去空格。用法 例 string a abc db2中 ltrim a abc rtrim a abc rtrim ltrim a a...