SQL REPLACE()

REPLACE() 函数是 SQL 中的一个字符串函数,用于在结果集中将指定字符串的所有出现替换为另一个字符串。

需要注意的是,REPLACE() 不会修改实际数据库表中的数据,它只更改查询结果中的数据。

示例

SELECT REPLACE(first_name, 'John', 'Jonathan') AS updated_names
FROM Customers;

在此,此查询的结果集将 Customers 表的 first_name 列中所有出现的 John 替换为 Jonathan


带 WHERE 子句的 REPLACE()

REPLACE() 函数可以与 WHERE 子句结合使用,以进行更精确的替换。例如,

SELECT REPLACE(item, 'Keyboard', 'Wireless Keyboard') AS updated_item
FROM Orders
WHERE amount < 500;

在此,SQL 命令将订单金额小于 500 的订单的 item 列中的 Keyboard 替换为 Wireless Keyboard


UPDATE 语句中的 REPLACE()

在 SQL 中,我们还可以在 UPDATE 语句中使用 REPLACE() 来修改表数据。

我们来看一个例子。

UPDATE Shippings
SET status = REPLACE(status, 'Pending', 'In Transit')
WHERE customer IN (4, 5);

SELECT * FROM Shippings;

此 SQL 命令更新 Shippings 表中的 status 列,将特定客户的 Pending 替换为 In Transit


链接 REPLACE() 函数

在 SQL 中,我们可以链接多个 REPLACE() 函数以进行复杂的替换。例如,

SELECT
    REPLACE(REPLACE(last_name, 'Doe', 'Smith'), 'Robinson', 'Johnson')
    AS updated_last_name
FROM Customers;

此查询将 last_name 列中的 Doe 替换为 Smith,将 Robinson 替换为 Johnson


将 REPLACE() 与 JOIN 结合使用

在 SQL 中,我们还可以将 REPLACE()JOIN 结合使用,以跨多个表执行替换。

我们来看一个例子。

SELECT
    C.customer_id,
    REPLACE(O.item, 'Keyboard', 'Mechanical Keyboard') AS updated_item
FROM Customers C
JOIN Orders O ON C.customer_id = O.customer_id;

在此示例中,在连接 CustomersOrders 表时,item 列中的 Keyboard 被替换为 Mechanical Keyboard

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战