SQL - REPLACE() 函数



SQL 的REPLACE()函数用于替换字符串中的子字符串。此方法接受三个字符串值作为参数,并将字符串的特定部分(子字符串)的所有出现替换为另一个字符串。如果传递给此函数的任何参数为NULL,则结果返回NULL值。

注意 - REPLACE()函数在用指定字符串替换子字符串时不执行区分大小写的匹配。

语法

以下是 SQL REPLACE() 函数的语法:

REPLACE(str,from_str,to_str)

参数

  • str - 原字符串。
  • from_str - 你想要替换的子字符串。
  • to_str - 你需要替换成的子字符串。

示例

在下面的示例中,我们使用REPLACE()函数将字符串“Hello World”中的所有“Hello”替换为“Hi”;

SELECT REPLACE('Hello World', 'Hello', 'Hi');

输出

以下是上述查询的输出:

+---------------------------------------+
| REPLACE('Hello World', 'Hello', 'Hi') |
+---------------------------------------+
| Hi World                              |
+---------------------------------------+

示例

你也可以将数值传递给此函数。

在下面的示例中,我们将数值“123012”传递给 REPLACE() 函数,并将“3012”替换为“4123”。

SELECT REPLACE(123012,3012,4123);

输出

以下是上述查询的输出:

+---------------------------+
| REPLACE(123012,3012,4123) |
+---------------------------+
| 124123                    |
+---------------------------+

示例

替换子字符串时,此函数不执行区分大小写的匹配。如果你尝试通过更改指定字符串的大小写来替换子字符串,则查询将执行而不会出现任何错误。

SELECT REPLACE('Structured query Language', 'QUERY', 'Query');

输出

以下是上述查询的输出:

+--------------------------------------------------------+
| REPLACE('Structured query Language', 'QUERY', 'Query') |
+--------------------------------------------------------+
| Structured Query Language                              |
+--------------------------------------------------------+

示例

你还可以将表的列名作为参数传递给此函数,并替换其中的值的一部分。假设我们在 SQL 表中创建了一个名为 Customers 的表,如下所示:

create table CUSTOMERS(
   ID INT NOT NULL, 
   NAME VARCHAR(15) NOT NULL, 
   AGE INT NOT NULL, 
   ADDRESS CHAR(25), 
   SALARY DECIMAL(10, 4)
 );

现在让我们使用 INSERT 语句将条记录插入到 Customers 表中,如下所示:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Ramesh', 32, 'Ahmedabad', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Khilan', 25, 'Delhi', 1500.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 ); 
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'Chaitali', 25, 'Mumbai', 6500.00 );

以下 SQL 查询使用 REPLACE() 函数将列“Name”中实体中的字符串“Ramesh”替换为“Dinesh”:

SELECT ID, NAME, REPLACE(NAME, 'Ramesh', 'Dinesh') from CUSTOMERS;

输出

以下是上述查询的输出:

+----+----------+-----------------------------------+
| ID | NAME     | REPLACE(NAME, 'Ramesh', 'Dinesh') |
+----+----------+-----------------------------------+
|  1 | Ramesh   | Dinesh                            |
|  2 | Khilan   | Khilan                            |
|  3 | kaushik  | kaushik                           |
|  4 | Chaitali | Chaitali                          |
+----+----------+-----------------------------------+
sql-string-functions.htm
广告