天天看点

postgresql中sql高级特性

--with查询

  1.CTE(common table expression),在复杂查询中定义一个辅助语句(可理解为在查询中定义一个临时表),常用于复杂查询或递归查询

  2.递归查询使用CTE(union all是将两个select语句的结果求并集。 union是将union all的结果下再去除重复数据)

with查询的一个重要属性recursive,使用recursive引用自己的输出从而实现递归,一般用于层次结构或树状结构

x从1开始,union+1后的值,循环直到5结束,之后计算X的总和

层次数字递归应用场景

构造测试表数据

查询检索ID为7及以上父节点,将结果输出name字段合并为“中国辽宁沈阳和平区”,这里通过string_agg实现