今天中午做需求的時候,有類似於根據銀行卡卡號的前幾位判斷出是哪個銀行的情況,每個銀行需要擷取的位數都不一樣,這時我就想到了substr
假設有乙個表的結構如下(表名tlk_bnkld_card)
寫sql語句的時候就能看到有很多的substr函式的提示,各人根據需求選用。
其中的 str表示被擷取的字段pos表示開始的下標
len表示擷取的長度
1擷取欄位idtf_value ,從第一位開始擷取,擷取兩位select substr(idtf_value from
1for
2) idtfvalue
2from
tlk_bnkld_card
3where1=
1
執行結果
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將字串用"4"分割開,擷取從開始到第二個「4」之前的字串輸出select substring_index(idtf_value,'
4',2
) idtfvalue
2from
tlk_bnkld_card
3where idtf_value=
'392454
'
執行結果
注意:假如有負號像這樣
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...