ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB SYS_CONNECT_BY_PATH函数

YashanDB SYS_CONNECT_BY_PATH函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-08-05 10:50:00 0 删除 编辑

SYS_CONNECT_BY_PATH

语法图

SYS_CONNECT_BY_PATH为层次查询场景使用的函数,本函数返回从根节点到当前节点路径上所有节点名为colName的列的值,之间用指定的字符delimiter分隔开。

函数的返回值类型为VARCHAR,返回值最大长度32000,超长就会报错。

本函数不支持向量化计算。

colName

该参数为语句中表的列名。

delimiter

字符或字符串分隔符。只能为常量或常量的字符串。

示例(HEAP表)

DROP TABLE IF EXISTS area_info;CREATE TABLE area_info (id INT, area_name VARCHAR(10), father_id INT);INSERT INTO area_info VALUES(2, '浙江', 0);INSERT INTO area_info VALUES(571, '杭州', 2);INSERT INTO area_info VALUES(1, '广东', 0);INSERT INTO area_info VALUES(755, '深圳', 1);INSERT INTO area_info VALUES(756, '龙华', 755);INSERT INTO area_info VALUES(757, '福田', 755);SELECT  id, father_id, LEVEL,CONNECT_BY_ROOT area_name AS name, SYS_CONNECT_BY_PATH(area_name, '/') path    
FROM area_info  
CONNECT BY PRIOR id = father_id START WITH father_id = 0  ORDER SIBLINGS BY id DESC;  
    ID    FATHER_ID    LEVEL NAME         PATH            
------ ------------ -------- ------------ --------------- 
     2            0        1 浙江       /浙江            
   571            2        2 浙江       /浙江/杭州       
     1            0        1 广东       /广东            
   755            1        2 广东       /广东/深圳       
   757          755        3 广东       /广东/深圳/福田  
   756          755        3 广东       /广东/深圳/龙华
代码
SYS_CONNECT_BY_PATH::= SYS_CONNECT_BY_PATH "(" colName "," delimiter ")"

SYS_CONNECT_BY_PATH为层次查询场景使用的函数,本函数返回从根节点到当前节点路径上所有节点名为colName的列的值,之间用指定的字符delimiter分隔开。

函数的返回值类型为VARCHAR,返回值最大长度32000,超长就会报错。

本函数不支持向量化计算。

colName

该参数为语句中表的列名。

delimiter

字符或字符串分隔符。只能为常量或常量的字符串。

示例(HEAP表)

DROP TABLE IF EXISTS area_info;CREATE TABLE area_info (id INT, area_name VARCHAR(10), father_id INT);INSERT INTO area_info VALUES(2, '浙江', 0);INSERT INTO area_info VALUES(571, '杭州', 2);INSERT INTO area_info VALUES(1, '广东', 0);INSERT INTO area_info VALUES(755, '深圳', 1);INSERT INTO area_info VALUES(756, '龙华', 755);INSERT INTO area_info VALUES(757, '福田', 755);SELECT  id, father_id, LEVEL,CONNECT_BY_ROOT area_name AS name, SYS_CONNECT_BY_PATH(area_name, '/') path    
FROM area_info  
CONNECT BY PRIOR id = father_id START WITH father_id = 0  ORDER SIBLINGS BY id DESC;  
    ID    FATHER_ID    LEVEL NAME         PATH            
------ ------------ -------- ------------ --------------- 
     2            0        1 浙江       /浙江            
   571            2        2 浙江       /浙江/杭州       
     1            0        1 广东       /广东            
   755            1        2 广东       /广东/深圳       
   757          755        3 广东       /广东/深圳/福田  
   756          755        3 广东       /广东/深圳/龙华


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3092773/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639747