sql資料庫擷取字串函式

時間 2021-09-15 00:09:59

1樓:匿名使用者

sql擷取字串函式:

a.擷取從字串左邊開始n個字元

以下是**片段:

顯示結果: http

b.擷取從字串右邊開始n個字元(例如取字元www.163.com)

以下是**片段:

顯示結果: www.163.com

c.擷取字串中任意位置及長度(例如取字元www)

以下是**片段:

顯示結果: www

以上例子皆是已知擷取位置及長度,下面介紹未知位置的例子

2.擷取未知位置的函式

a.擷取指定字串後的字串(例如擷取http://後面的字串)

方法一:

以下是**片段:

顯示結果: www.163.com

需要注意:charindex函式搜尋字串時,不區分大小寫,因此charindex('www',@s1)也可以寫成charindex('www',@s1)

方法二:(與方法一類似)

以下是**片段:

--此處也可以這樣寫:select

substring(@s1,patindex('%//%',@s1)+2,len(@s1))

------------------------------------

顯示結果: www.163.com

函式patindex與charindex區別在於:前者可以引數一些引數,增加查詢的功能

方法三:

以下是**片段:

顯示結果: www.163.com

利用字元替換函式replace,將除需要顯示字串外的字元替換為空

方法四:

以下是**片段:

顯示結果: www.163.com

函式stuff與replace區別在於:前者可以指定替換範圍,而後者則是全部範圍內替換

b.擷取指定字元後的字串(例如擷取c:\windows\test.txt中檔名)

與a不同的是,當搜尋物件不是一個時,利用上面的方法只能搜尋到第一個位置

方法一:

以下是**片段:

declare @s1 varchar(100)

select @s1='c:\windows\test.txt'

select right(@s1,charindex('\',reverse(@s1))-1)

-------------------------------------

顯示結果: text.txt

利用函式reverse獲取需要擷取的字串長度

2樓:匿名使用者

oracle中 其語法為:

substr函式的用法,取得字串中指定起始位置和長度的字串 ,預設是從起始位置到結束的子串。

substr( string, start_position, [ length ] ) substr('目標字串',開始位置,長度)

如: substr('this is a test', 6, 2) would return 'is'

substr('this is a test', 6) would return 'is a test'

substr('techonthenet', -3, 3) would return 'net'

substr('techonthenet', -6, 3) would return 'the'select substr('thisisatest', -4, 2) value from dual

3樓:匿名使用者

不同的資料庫的字串函式有點不一樣把,一般就是substring或者是substr

C擷取字串

如果格式是一致的,括號中都為數字的話,可以考慮使用正則來匹配 看你的資料時什麼樣的,如果字數固定 例如 102 2號桌 103 3號桌 這樣的你用substring最快也最方便。如果字數不固定,那都用split分割 var s 101 1號桌 var a s.split 得到 101 和 1號桌 v...

C幾種擷取字串的,C 幾種擷取字串的方法小結

c 幾種擷取字串的方法小結,需要的朋友可以參考一下 1.根據單個分隔字元用split擷取 例如 如下 string st gt123 1 string sarray st.split 即可得到sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 例如 如下 string s...

(急)php擷取字串問題

使用mb substr 這個是php自帶的內建函式庫,專門解決多位元組混合擷取的問題。string mb substr string str int start int length string encoding 中文擷取不亂碼,使用 iconv substr函式 str 我愛你abc中國 ech...