db2locate函式 DB2中使用locate

2021-10-18 18:42:11 字數 806 閱讀 8999

db2中的like的使用是有限制的,它後面不能跟乙個變數或者是字段,因此,在儲存過程或sql語句中就不能like乙個變數或乙個字段。

比如有兩個表a(a,b,c,d),b(a,b,c,d)。

普遍的用法是:

select * from a where a.b like '%張%'

此語句在任何資料庫都是通用的,

但有時也遇到這種情況:

select a.a,b.b from a,b where a.d like b.d||'%'

此語句在oracle中執行沒有問題,但在db2中就不行,報以下錯誤:

sql0132n like 謂詞或 posstr 標量函式無效,因為第乙個運算元不是字串表示式或第二個運算元不是字串。locate 或 position 標量函式無效,

因為第乙個運算元不是字串,或者第二個運算元不是字串表示式。

此種情況在db2中是使用locate函式,locate用法:

locate(arg1,arg2,pos),在org2中查詢arg1第一次出現的位置,pos指明從哪個位置開始查詢(省略則從開始查詢),如果arg1不為null且查詢不到

的話返回0,如果找到則返回大於0的數字。

對於語句:

select a.a,b.b from a,b where a.d like b.d||'%'

在db2中應該修改為:

select a.a,b.b from a,b where locate(b.d,a.d)>0

分享到:

2012-04-29 11:41

瀏覽 2153

分類:資料庫

db2locate函式 DB2資料庫常用的函式

1.value函式 語法value 表示式1,表示式2 value函式是用返回乙個非空的值,當其第乙個引數非空,直接返回該引數的值,如果第乙個引數為空,則返回第乙個引數的值。eg 表示如果t1.id為空,則返回空串,如果不為空,則返回t1.id select value id,from t1 2.c...

DB2中db2命令引數說明

db2中db2命令引數說明 a 顯示 sqlca off c 自動落實 on d 檢索並顯示 xml 宣告 off e 顯示 sqlcode sqlstate off f 讀取輸入檔案 off i 顯示 xml 資料並帶有縮排 off l 將命令記錄到歷史記錄檔案中 off m 顯示受影響的行數 o...

DB2常用函式

1 char函式 char current date,iso 轉換成yyyy mm dd char current date,usa 轉換成mm dd yyyy char current date,eur 轉換成dd.mm.yyyy char current date,jis char curren...