資料庫擷取字串SUBSTR函式的使用

2022-01-23 05:45:05 字數 1853 閱讀 5242

今天中午做需求的時候,有類似於根據銀行卡卡號的前幾位判斷出是哪個銀行的情況,每個銀行需要擷取的位數都不一樣,這時我就想到了substr

假設有乙個表的結構如下(表名tlk_bnkld_card)

寫sql語句的時候就能看到有很多的substr函式的提示,各人根據需求選用。

其中的 str表示被擷取的字段

pos表示開始的下標

len表示擷取的長度

1

select substr(idtf_value from

1for

2) idtfvalue

2from

tlk_bnkld_card

3where1=

1

擷取欄位idtf_value ,從第一位開始擷取,擷取兩位

執行結果

1擷取欄位idtf_value ,從第二位擷取到結束

執行結果:

substring與substr區別不大,輸出結果一致;

1 substr(str

,pos)

2 substr(str,pos,len)3

substring(str

from pos for

len)

4substring(str

from

pos)

5substring(str

,pos)

6substring(str,pos,len)

用法規則:

substring_index(「待擷取有用部分的字串」,「擷取資料依據的字元」,擷取字元的位置n)

例如:

1

select substring_index(idtf_value,'

4',2

) idtfvalue

2from

tlk_bnkld_card

3where idtf_value=

'392454

'

將字串用"4"分割開,擷取從開始到第二個「4」之前的字串輸出

執行結果

注意:假如有負號像這樣

1

select substring_index(idtf_value,'

4',-

2) idtfvalue

2from

tlk_bnkld_card

3where idtf_value=

'392454

'

擷取時就說從後往前擷取,擷取到從後面數的第二個之前

執行結果

出處:

substr 擷取字串

格式 substr string,start position,length 解釋 string 元字串 start position 開始擷取位置 預設從1開始 為負數時從字串結尾指定擷取位置 length 可選項,擷取字串的長度 即擷取幾個字元 示例 substr abcde 1 返回 abcd...

oracle擷取字串 substr函式用法

1 substr函式格式 俗稱 字元擷取函式 格式1 substr string string,int a,int b 格式2 substr string string,int a 解釋 格式1 1 string 需要擷取的字串 2 a 擷取字串的開始位置 注 當a等於0或1時,都是從第一位開始擷取...

SQL語句中擷取字串Substr

不同的資料庫中提供的函式不同 oracle資料庫提供的擷取字串函式是 substr substr stirng1,strat,length 擷取功能 解析一下 string1是你要擷取的字串,strat是要開始擷取的位置,length是你要擷取多少個字串。在access資料庫中擷取字串採用 left...