SQL - STRING_ESCAPE() 函数



SQL 的STRING_ESCAPE()函数用于将转义的特殊字符转换为字符串。

它接受两个参数 text 和 type。它返回一个包含转义字符的新字符串(text)。目前,STRING_ESCAPE()函数仅支持转义JOSN的特殊字符。

转义字符是一个字符,它会调用对字符序列中后续字符的替代解释。例如,反斜杠(\)是转义字符。您可以在 SQL 中使用转义字符来搜索特殊字符,并且要转义特殊字符,可以在其前面使用反斜杠(\)。

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

STRING_ESCAPE( text , type )   

参数

  • text − 它是一个 nvarchar 表达式,表示应转义的对象。

  • type − 它是要应用的转义规则。

返回值

它返回一个包含转义字符的文本。

示例

在以下示例中,我们使用 SQL STRING_ESCAPE()函数将转义特殊字符'\HELLO\WORLD'转换为字符串。

SELECT STRING_ESCAPE('\HELLO\WORLD', 'JSON') as New_string;

输出

执行上述程序后,将产生以下输出:

+----------------+
| New_string     |
+----------------+
| \\HELLO\\WORLD |
+----------------+

示例

以下是 SQL STRING_ESCAPE()函数的另一个示例,这里,我们尝试从文本'https://tutorialspoint.com/users'中转换或转义特殊转义字符。此函数将返回包含转义字符的文本。

SELECT STRING_ESCAPE('https://tutorialspoint.com/users', 'JSON') as New_string;

输出

+-----------------------------------------+
| New_string                              |
+-----------------------------------------+
| https:\/\/www.tutorialspoint.com\/users |
+-----------------------------------------+

示例

如果我们将type 参数的值作为传递给 STRING_ESCAPE() 函数,则此函数将引发为参数 2 指定无效值错误。

SELECT STRING_ESCAPE('\\TutorialsPount\easylearning', '') as New_string;

输出

以下是上述语句的输出:

An invalid value was specified for argument 2.

示例

如果我们将type 参数作为NULL传递给此函数,则STRING_ESCAPE()函数将引发无效数据类型错误。

SELECT STRING_ESCAPE('\\TutorialsPount\easylearning', NULL) as New_string;

输出

执行上述程序后,将产生以下输出:

Argument data type NULL is invalid for argument 2 of string_escape function.

示例

您可以将表列作为参数传递给STRING_ESCAPE()函数,以将列转义字符转换为包含转义字符的字符串。假设,我们使用CREATE语句创建了一个名为 Customers 的表,如下所示:

CREATE TABLE CUSTOMERS(    
   ID INT NOT NULL,    
   FIRST_NAME VARCHAR (20),
   LAST_NAME VARCHAR(20),s
   AGE INT NOT NULL,    
   ADDRESS CHAR (25) ,    
   SALARY DECIMAL (18, 2));

让我们使用INSERT语句将一些包含转义字符的记录插入到Customers表中,如下所示:

INSERT INTO CUSTOMERS VALUES (1, '/Rohan\','Verma', 33, 'Hyderbad', 2100.00 ); 
INSERT INTO CUSTOMERS VALUES (2, '\\Kamlesh','Kumar', 30, 'Lucknow', 2500.00 ); 
INSERT INTO CUSTOMERS VALUES (3, 'Seeta\\','Sharma', 23, 'Delhi', 3150.00 );

以下是将 Customer 表中列 FIRST_NAME 的转义字符转换为包含转义字符的字符串的 SQL 查询:

SELECT ID, FIRST_NAME, STRING_ESCAPE(FIRST_NAME, 'JSON') AS NEW_LIST FROM CUSTOMERS;

输出

以下是上述查询的输出:

+--------------------+-----------------+
| ID  | FIRST_NAME   | NEW_LIST        |
+--------------------+-----------------+
| 1   | /Rohan\      |  \/Rohan\\      |
| 2   | \\Kamlesh    |  \\\\Kamlesh    |
| 3   |  Seeta\\     |  Seeta\\\\      |
+--------------------+-----------------+
sql-string-functions.htm
广告