sql中使用replace函数用于update语句
把表Mng_Auth_SiteMap里的URL字段里的包含“BackEnd_Clean”的替换成“BackEnd”,并且其他保持不变,如下:
UPDATE [BackEnd_DB].[dbo].[Mng_Auth_SiteMap] SET [URL] = replace(cast([url] as nvarchar(255)),BackEnd_Clean,BackEnd) WHERE [url] like %BackEnd_Clean%
说明:这里是一cast函数主要是防止字段[url]的数据类型不是字符串型,你也可以使用下面的语句,其实也是正确的。 SET [URL] = replace([url] ,BackEnd_Clean,BackEnd)
=========================================================================
REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法 REPLACE ( string_expression1 , string_expression2 , string_expression3 )
参数 string_expression1
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
string_expression2
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
string_expression3
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型 如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
示例 下例用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE(abcdefghicde,cde,xxx)GO 下面是结果集:
------------abxxxfghixxx(1 row(s) affected)
=========================================================================
CAST函数 CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。 语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQServer表达式。 AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。 data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。 使用CAST函数进行数据类型转换时,在下列情况下能够被接受: (1)两个表达式的数据类型完全相同。 (2)两个表达式可隐性转换。 (3)必须显式转换数据类型。 如果试图进行不可能的转换(例如,将含有字母的 char 表达式转换为 int 类型),SQServer 将显示一条错误信息。 如果转换时没有指定数据类型的长度,则SQServer自动提供长度为30。 例如: SELECT CAST(ABCDE AS NVARCHAR(3)) AS 结果 运行结果: ABC 说明:将字符串ABCDE的数据类型转换为NVARCHAR类型,并且长度为3,所以运行结果为ABC而没有显示DE。
下面使用CAST函数将int类型的ytd_sales列转换为char(20)列子:
SQL语句如下: USE pubs SELECT ytd_sales FROM titles SELECT title, ytd_sales FROM titles WHERE CAST(ytd_sales AS char(20)) LIKE 15% AND type = trad_cook 程序运行结果如图1所示。 图1 将int类型的ytd_sales列转换为char(20)列子
建议:象cast, as 之类的都是sql 语句里的关键字,在查询分析器里,选择后,按SHIFT+F1就可以查询帮助。