PostgreSQL之树形展示
2016-04-21 10:20
351 查看
开心一笑
一位男士对朋友说:“昨天我和老婆打完架之后,老婆跪在我的面前。”朋友惊讶地说:“哎呀!你真了不起。不过,你老婆跪着时对你说什么?”
男士答道:“她说‘你这个死东西,快点给我从床底下滚出来’。”
提出问题
PostgreSQL如何把数据展示成树形结构???解决问题
with的具体语法,可以看看我的这篇文章:/article/11915163.html
建表:
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次的时候就停止脚步。《编辑部的故事》里那句脍炙人口的名言: 金钱不是万能的,但没有钱是万万不能的。
你为什么要有钱,真正的原因,是追求你的梦想,实现你的人生价值。
相关文章推荐
- PLSQL Developer激活码
- Oracle字符集和国家字符集
- Understanding and Using HRMS Security in Oracle HRMS
- redis实战
- redis实战
- redis实战
- redis实战
- redis实战
- win10 sql server 2014 服务中需要设置失败后自动重启
- Node.js开发入门——MongoDB与Mongoose
- MySQL修改数据表
- ado、odbc连接Postgre SQL
- MongoDB 操作范例
- MongoDB与传统数据库的使用区别——批量插入与批量查询
- Redis 设置密码登录
- oracle 更改服务端字符集 更改oracle字符集
- mysql命令行工具
- oracle impdp ora-31626作业不存在...ora-04031无法分配32字节共享内存。。。
- MySQL 数据类型
- Toad for oracle 12.1下载