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
廣告