SQL Server Replace

17 Mar 2025 | 4 分钟阅读

“replace” 这个名称本身就定义了它意味着将某物替换为另一个值。 SQL Server 中的 replace 函数用于将字符串的所有出现或字符串的一部分(子字符串)替换为新的给定字符串值。 本文全面概述了使用 REPLACE() 函数将字符串中的所有出现替换为新的子字符串。

让我们看一下下面的示例,它解释了 replace 函数的概念.

在这里,我们将查看一个在线机票预订系统。 假设我们希望客户只能预订 'Shimla' 的机票,我们将不得不将 当前城市状态 及其所有出现更改为“Shimla”。 在这种情况下,我们将使用 replace 函数,该函数使我们能够将当前城市的每个实例替换为 'Shimla'。

REPLACE 函数的语法

我们可以使用以下语法将所有出现或存在提到的输入字符串替换为新字符串

在这个语法中,

string_rxpression: 这是将要替换数据的输入字符串。 它可以是字符或二进制数据类型。

substring: 这是要替换的字符串。 如果字符串为空 (''),则返回不变。

string_replacement: 这是一个替换字符串值,用于替换旧字符串。

注意:我们需要知道 replace 函数执行的替换是不区分大小写的。

返回值

  • 如果其中一个输入参数是 nvarchar 数据类型,则此函数返回 nvarchar; 否则,它将返回 varchar
  • 如果任何参数为 NULL,则结果为 NULL。

支持的版本

replace 函数可以支持以下 SQL Server 版本

SQL Server 2005、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、SQL Server 2014、SQL Server 2016、SQL Server 2017、SQL Server 2018 和 SQL Server 2019。

示例

让我们通过一些示例来了解 replace() 函数在 SQL Server 中的工作方式。

1. 将 replace 函数与文本字符串一起使用

假设我们有一个字符串 'It is a best coffee at the famous coffee shop'。 并且想将子字符串 'coffee' 替换为 'tea',我们可以使用 replace 函数来替换给定字符串中的 coffee 与 tea,如下所示

执行此语句后,我们将得到此输出

SQL Server Replace

2. 将 COLLATE 函数与 REPLACE 一起使用

replace 函数根据输入的排序规则进行比较。 我们可以使用 COLLATE 将显式排序规则应用于输入,并在该排序规则中执行比较。

下面的示例使用 区分大小写的排序规则 函数进行比较,并在 replace 函数内验证它们

执行此语句后,我们将得到此输出

SQL Server Replace

由于区分大小写的排序规则无法验证输入模式,因此输出不会更改输入表达式。

我们将使用相同的示例,使用 不区分大小写的排序规则 函数进行比较,并在 replace 函数内验证它们

执行此语句后,我们将得到此输出

SQL Server Replace

由于不区分大小写的排序规则会验证输入模式,而不考虑大小写,因此输出显示了值匹配。

3. 将 replace 函数与表列一起使用

现在,我们将看到 replace() 函数如何与表列一起使用。 首先,我们将使用以下语句创建一个名为 “Places” 的表

接下来,我们将使用 INSERT 语句添加数据

我们将使用 SELECT 语句验证表

SQL Server Replace

假设我们想将 “City” 列中所有出现的字符 'a' 替换为 'A'。 我们可以通过使用带有 replace 函数的以下语句来做到这一点。 在这里,我们还提供“City”的数据值作为 NOT NULL,以替换具有值的城市列。

执行此语句后,我们将得到以下输出

SQL Server Replace

以下语句是另一个解释表中 replace 函数的示例

执行此语句后,我们可以观察到“A”被“a”替换。

SQL Server Replace
下一个主题SQL Server COALESCE