XMLEXISTS
📄字数 663
👁️阅读量 加载中...
功能描述
判断一个xpath表达式中的元素是否存在。
XML数据类型的详细信息请参见《SQL语法参考指南》的XML数据类型章节。
语法格式
sql
XMLEXISTS(xpath PASSING xmlval)输入参数
xmlval:XML类型数据。xpath:查找路径。
输出结果
BOOL类型。第二个参数为NULL输出结果为NULL。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
sql
-- 存在要查找的数据
SQL> CREATE TABLE test_xmlexists(id INT,c1 XML,insert_time DATE);
SQL> INSERT INTO test_xmlexists VALUES(1,'<a>abc</a>','2020-01-01');
SQL> INSERT INTO test_xmlexists VALUES(2,'<country>china</country>','2020-02-01');
SQL> INSERT INTO test_xmlexists VALUES(3,'<a>abc</a>','2020-03-01');
SQL> SELECT t.id,t.insert_time FROM test_xmlexists t WHERE XMLEXISTS('/country' PASSING t.c1);
+----+-------------+
| ID | INSERT_TIME |
+----+-------------+
| 2 | 2020-02-01 |
+----+-------------+
-- 不存在要查找的数据
SQL> SELECT t.id,t.insert_time FROM test_xmlexists t WHERE XMLEXISTS('/country/city' PASSING t.c1);
+----+-------------+
| ID | INSERT_TIME |
+----+-------------+
+----+-------------+