PostgreSQL之树形展示

开心一笑

一位男士对朋友说:“昨天我和老婆打完架之后,老婆跪在我的面前。”
朋友惊讶地说:“哎呀!你真了不起。不过,你老婆跪着时对你说什么?”
男士答道:“她说‘你这个死东西,快点给我从床底下滚出来’。”

提出问题

PostgreSQL如何把数据展示成树形结构???

美图.png

with的具体语法,可以看看我的这篇文章:
http://blog.csdn.net/huangwenyi1010/article/details/51220341

解决问题

建表:


create table ay_tree_test(id varchar(3) , pid varchar(3) , name varchar(10)); 

插入数据:

INSERT INTO ay_tree_test values('001','0','厦门市');
INSERT INTO ay_tree_test values('002','001','海沧区','2100');
INSERT INTO ay_tree_test values('003','001','集美区','2500');
INSERT INTO ay_tree_test values('004','001','同安区','1500');
INSERT INTO ay_tree_test values('005','002','区政府','1');
INSERT INTO ay_tree_test values('006','002','青春海岸','10');
INSERT INTO ay_tree_test values('007','002','未来海岸','15');

例一:1+2+....100 用RECURSIVE实现递归

 WITH RECURSIVE t(n) AS (
    VALUES (1)
  UNION ALL
    SELECT n+1 FROM t 
    WHERE n < 100
)
SELECT sum(n) FROM t;

解释:RECURSIVE 是递归的意思,可以把VALUES (1)当中初始条件,即n = 1时:
1 union all select 2 from t
n = 2时:
1 union all select 2 from t union all select 3 from t
......
......

当n>100 时跳出循环,及where n >100时,跳出循环,这是我个人的理解方法,你可以有自己更好的理解方法.

例二:

with recursive cte as 
 ( 
 select a.id,a.name,a.pid from ay_tree_test a where id='001' 
 union all  
 select k.id,k.name,k.pid  from ay_tree_test k inner join cte c on c.id = k.pid 
 )select id,name,pid from cte;

结果如下,利用上面的理解方法,树形结构就展示出来了:

这里写图片描述

读书感悟

  • “越早行动越好”是至理名言。遇不到对的人,恋爱失败,这些都是正常的,想想概率问题吧。
    失败10次才能成功1次,那就千万不要在失败了5次的时候就停止脚步。
  • 《编辑部的故事》里那句脍炙人口的名言: 金钱不是万能的,但没有钱是万万不能的。
  • 你为什么要有钱,真正的原因,是追求你的梦想,实现你的人生价值。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 女人啊,爱变卦 像羽毛风中飘 不断变主意 不断变腔调 看上去很可爱 功夫有一套 一会用眼泪 一会用微笑 女人爱变卦...
    鸡肉卷好好吃阅读 202评论 0 1
  • 你听说过,爱无能吗? 我第一次听这个词的时候,和你想的一样,别以为我不知道你在想什么。 爱无能——不懂什么是爱,说...
    九里归一阅读 895评论 7 5