SQL中字符串截取、连接、替换等函数的用法

一、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’

《SQL中字符串截取、连接、替换等函数的用法》    《SQL中字符串截取、连接、替换等函数的用法》(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_namestore_name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

例子1:

MySQL:

(1)SELECT CONCAT(‘My’, ‘S’, ‘QL’);

结果:

‘MySQL’

《SQL中字符串截取、连接、替换等函数的用法》

《SQL中字符串截取、连接、替换等函数的用法》

(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

    原文作者:hospop
    原文地址: https://blog.csdn.net/ospop/article/details/16860185
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞