云数据库 GAUSSDB-层次递归查询函数
层次递归查询函数
层次递归查询语句中可使用以下函数返回连接路径上的相关信息。
- sys_connect_by_path(col, separator)
描述:仅在层次递归查询中适用,用于返回从根节点到当前行的连接路径。
参数col为在路径中显示的列的名称,只支持类型为CHAR/VARCHAR/NVARCHAR2/TEXT的列,参数separator为路径节点之间的分隔符。
返回值类型:text
示例:
1 2 3 4 5 6 7 8
gaussdb=# select *, sys_connect_by_path(name, '-') from connect_table start with id = 1 connect by prior id = pid; id | pid | name | sys_connect_by_path ----+-----+------+--------------------- 1 | 0 | a | -a 2 | 1 | b | -a-b 4 | 1 | d | -a-d 3 | 2 | c | -a-b-c (4 rows)
- connect_by_root(col)
描述:仅在层次递归查询中适用,用于返回当前行最顶层父亲行中某列的值。
参数col为输出列的名称。仅支持如下类型的列:INT8、INT1、INT2、OID、INT4、BOOL、CHAR、NAME、FLOAT4、FLOAT8、ABSTIME、RELTIME、DATE、CASH、TIME、TIMESTAMP、TIMESTAMPTZ、SMALLDATETIME、UUID、INTERVAL、TIMETZ、INT2VECTOR、CLOB、NVARCHAR2、VARCHAR、TEXT、VECTOR、BPCHAR、RAW、BYTEA、NUMERIC、XID、CID以及TID,且通过强制类型转换为上述类型的操作无法绕开白名单限制,如:connect_by_root(col::text)(其中col不是上述白名单中的类型)。
返回值类型:即为所指定列col的数据类型。
示例:
1 2 3 4 5 6 7 8
gaussdb=# select *, connect_by_root(name) from connect_table start with id = 1 connect by prior id = pid; id | pid | name | connect_by_root ----+-----+------+----------------- 1 | 0 | a | a 2 | 1 | b | a 4 | 1 | d | a 3 | 2 | c | a (4 rows)
- GaussDB递归_层次递归查询函数_高斯数据库递归-华为云
- GaussDB培训_GaussDB教程_高斯数据库培训-华为云
- GaussDB考试_GaussDB数据库考试_高斯数据库考试_华为云
- GaussDB函数_GaussDB数据库函数_高斯数据库函数_华为云
- GaussDB视频教程_gaussdb查看表结构语句_高斯数据库视频教程_华为云
- MOM和MES_赛意MES系统_金蝶MES多少钱
- GaussDB时序_时序引擎_高斯数据库时序-华为云
- GaussDB支持的函数_GaussDB函数类型解析_高斯数据库支持的函数-华为云
- 调用函数_函数调用方式_函数工作流 FunctionGraph-华为云
- GaussDB计算性能_gaussdb递归_高斯数据库计算性能_华为云