SQL STRING_ESCAPE()函数
SQL STRING_ESCAPE() 函数用于将转义的特殊字符转换为字符串。
它接受 两个 参数,即文本和类型。它返回一个带有转义字符的新字符串(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://www.tutorialspoint.com/users’ 转换或转义为文本。此函数将返回带有转义字符的文本。
SELECT STRING_ESCAPE('https://www.tutorialspoint.com/users', 'JSON') as New_string;
输出
+-----------------------------------------+
| New_string |
+-----------------------------------------+
| https:\/\/www.tutorialspoint.com\/users |
+-----------------------------------------+
示例
如果我们将 type参数 值传递为空值到STRING_ESCAPE()函数,该函数会抛出指定的第二个参数无效值错误。
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));
让我们使用转义字符将一些记录插入到 Customers 表中,使用以下 INSERT 语句:
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\\\\ |
+--------------------+-----------------+