SQL中字串擷取 連線 替換等函式的用法

2022-03-01 12:18:21 字數 2735 閱讀 1616

一、sql中substring函式的用法

1、功能:返回字元、二進位制、文字或影象表示式的一部分

2、語法:substring ( expression, start, length )

3、ql 中的 substring 函式是用來抓出乙個字段資料中的其中一部分。這個函式的名稱在不同的資料庫中不完全一樣:

mysql: substr(), substring()

oracle: substr()

sql server: substring()

4、引數:

expression 字串、二進位制字串、文字、影象、列或包含列的表示式。請勿使用包含聚合函式的表示式。

start 整數或可以隱式轉換為 int 的表示式,指定子字串的開始位置。

length 整數或可以隱式轉換為 int 的表示式,指定子字串的長度。

5、舉例:

(1)select  substr('mysql', 2, 2);

結果:'ys'

(2)update tb_lse_data_latbook set latbook_urlparam=substring(latbook_url,28,length(latbook_url)) where db_id=51;

二、sql— concat(字串連線函式)

有的時候,我們有需要將由不同字段獲得的資料串連在一起。每一種資料庫都有提供方法來達到這個目的:

mysql: concat()

oracle: concat(), ||

sql server: +

concat() 的語法如下:

concat(字串1, 字串2, 字串3, ...): 將字串1、字串2、字串3,等字串連在一起。

請注意,oracle的concat()只允許兩個引數;

換言之,一次只能將兩個字串串連起來。不過,在oracle中,我們可以用'||'來一次串連多個字串。

來看幾個例子。假設我們有以下的**:

geography ** 

region_name

store_name

east

boston

east

new york

west

los angeles

west

san diego

例子1:

mysql:

(1)select concat('my', 's', 'ql');

結果:'mysql'

(2)update tb_lse_data_latbook set latbook_urlparam=concat('key=',latbook_issn) where db_id=54

(3)update tb_lse_data_latbook set latbook_urlparam=concat('key=',latbook_issn,'&volume=') where db_id=21

例子2:

oracle:

(1)select concat(region_name,store_name) from geography where store_name = 'boston';

結果:'eastboston'

(2)select region_name || ' ' || store_name from geography where store_name = 'boston';

結果:'east boston'

例子3:

sql server:

(1)select region_name + ' ' + store_name from geography where store_name = 'boston';

結果:'east boston'

三、sql中的replace替換字元函式的用法

語法 replace ( original-string, search-string, replace-string )

引數 如果有某個引數為 null,此函式返回 null。

original-string      被搜尋的字串。可為任意長度。

search-string       要搜尋並被 replace-string 替換的字串。該字串的長度不應超過 255 個位元組。如果 search-string 是空字串,則按原樣返回原始字串。

replace-string      該字串用於替換 search-string。可為任意長度。如果 replacement-string 是空字串,則刪除出現的所有 search-string。

例子:將表tablename中的recordname欄位中的 abc 替換為 ddd

(1)update tablename set recordname=replace(recordname,'abc','ddd')

這個函式有一點不足是不支援 text,ntext型別欄位的替換,可以通過下面的語句來實現:

(2)update tablename set recordname=replace(cast(recordname as varchar(8000)) ,'abc','ddd')

(3)update tb_lse_data_latbook set latbook_urlparam=replace(latbook_urlparam,'&scope=site','') where db_id=47

oracle操作字串 拼接 替換 擷取 中查詢

1 拼接字串 1 可以使用 來拼接字串 select 拼接 字串 as str from dual 返回結果 拼接字串2 通過concat 函式實現 select concat 拼接 字串 as str from dual注 oracle的concat函式只支援兩個引數的方法,即只能拼接兩個引數,如...

oracle操作字串 拼接 替換 擷取 查詢

1 拼接字串 1 可以使用 來拼接字串 1 select 拼接 字串 as strfrom dual 2 通過concat 函式實現 1 select concat 拼接 字串 as strfrom dual 注 oracle的concat函式只支援兩個引數的方法,即只能拼接兩個引數,如要拼接多個引...

oracle操作字串 拼接 替換 擷取 查詢

1 拼接字串 1 可以使用 來拼接字串 1 select 拼接 字串 as str from dual2 通過concat 函式實現 1 select concat 拼接 字串 as str from dual注 oracle的concat函式只支援兩個引數的方法,即只能拼接兩個引數,如要拼接多個引...