PostgreSQL之树形展示
开心一笑一位男士对朋友说:“昨天我和老婆打完架之后,老婆跪在我的面前。” 提出问题PostgreSQL如何把数据展示成树形结构??? 解决问题with的具体语法,可以看看我的这篇文章: 建表: 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','集美区','2500');
INSERT INTO ay_tree_test values('004','同安区','1500');
INSERT INTO ay_tree_test values('005','002','区政府','1');
INSERT INTO ay_tree_test values('006','青春海岸','10');
INSERT INTO ay_tree_test values('007','未来海岸','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时: 当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;
结果如下,利用上面的理解方法,树形结构就展示出来了: 读书感悟
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |