firebird的递归查询】的更多相关文章

with RECURSIVE cte as ( select a.* from PM_PROJECT a where a.pm_id='root_id' union all select k.* from PM_PROJECT k join cte c on c.pm_id =k.pm_parent ) select * from cte 表结构: pm_idpm_parentpm_name只可惜,目前只有自上而下的查询. SELECT GEN_ID(gen_projectid, 1) FROM…
开篇:项目中用到上下级从属关系的太多太多了,如:组织.分类.行政区域,这里不再一一介绍,遇到这种的如何去进行数据库表的设计及其应用的,个人对往期项目中所涉及到的进行了一些总结. 数据库表设计:表字段一般含有:ID,Code,Name,ParentCode,ParentName,CodePath,NamePath,Level,IsNotLast,这里解释一下CodePath,NamePath,主要是为了后续方便查询使用,Level是为了方便层级检索,IsNotLast是是否最后一级,这个作用在行政…
使用CTE进行递归查询,能够实现对层次结构的数据的快速访问,非常有用. TSql CTE 递归原理探究 TSql 分层和递归查询 1,CTE的递归结构 递归查询的结构包括两部分:起始点和迭代公式. 使用CTE递归,其迭代终止条件是达到max_recursive指定的递归次数,或递归公式返回的结果集是empty,(即递归公式没有返回任何结果). 创建测试数据:ManagerID是UserID的父节点,这是一个非常简单的层次结构模型. use tempdb go create table dbo.d…
本文标题:Oracle递归查询:使用prior实现树操作 本文链接:http://yedward.net/?id=41 本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处. Oracle递归查询:使用prior实现树操作 时间:2014年08月03日  浏览:8467次 oracle树查询的最重要的就是select…start with…connect by…prior语法了.依托于该语法,我们可以将一个表形结构的数据以树的顺序列出来.在下面列述了oracle中树型查询的常用查询方…
直接在oracle 递归查询语句 select * from groups start with id=:DeptId connect by prior superiorid =id 往下找 select * from groups start with id=:DeptId connect by prior id=superiorid…
1.创建表: DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` ( `id` ) ' AUTO_INCREMENT, `) ', `name` ) ', `parentId` ) ', `status` ) ', PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARSET=utf8; 2.初始数据: '); '); '); '); '); '); '); '); '); '); '); '); '…
在SELECT命令中使用CONNECT BY和START WITH子句可以查询表中的树型结构关系.其命令格式如下: SELECT * from CONNECT BY {PRIOR列名1=列名2|列名1=PRIOR列名2} [START WITH]: 其中:CONNECT BY子句说明每行数据将是按层次顺序检索,并规定将表中的数据连入树型结构的关系中.PRIORY运算符必须放置在连接关系的两列中某一个的前面.对于节点间的父子关系,PRIOR运算符在一侧表示父节点,在另一侧表示子节点,从而确定查找树…
感觉这个CTE递归查询蛮好用的,先举个例子: use City; go create table Tree ( ID int identity(1,1) primary key not null, Name varchar(20) not null, Parent varchar(20) null ) go insert Tree values('大学',null) insert Tree values('学院','大学') insert Tree values('计算机学院','学院') in…
注明:该文章为引用别人的文章,链接为:http://blog.csdn.net/apicescn/article/details/1510922 ,本人记录下来只是为了方便查看 原文: connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start by cond1 connect by cond2 where cond3; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: id,parentid那么通过表示每一条记录…
1.RootDirectory  "写上Firebird服务器的安装路径" 如果不对FbServer服务是企动会出错的.2.DatabaseAcces 指的是访问Firebird数据库的路径,可以用相对路径,也可以用绝对路径.如果是访问整个服务器的磁盘空间写:DatabaseAcces=Full3.ExternalFileAccess 外部表文件存放的路径.缺省值是non,也就是不允许你建外部表文件.如可以把外部表文件保存在C:\ExternalTables, 可以这样设定:Exter…
[z]http://jingyan.baidu.com/article/5d368d1e182bb93f60c05784.html START WITH CONNECT BY PRIOR这个语法主要用于查询数据包中的树型结构关系.先看下原始数据时怎么样的吧! 表中第一行1001是1002的父节点,而第二行1002又是1003的父节点,如此循环.如题:要求给出其中一个数字能找出其最终的根节点!应该要怎么样实现呢?请看如下sql语句,这里我就拿1008为例.图中第一行第一个num1就是根节点了.再来…
今天用了Firebird,记录下怎么用,不然下次给忘记了 1.官网下载包 1.DDEXProvider-3.0.1.0.msi 2.FirebirdSql.Data.FirebirdClient-4.6.2.0.msi 备注: 1.发现DDEXProvider 与 FirebirdSql.Data.FirebirdClient安装有先后顺序 1.如果中间出现了重复安装FirebirdSql.Data.FirebirdClient的情况,此目录:C:\Windows\Microsoft.NET\F…
老板要我开发一个LINUX平台上的数据库项目,要求一定要用开源免费数据库.我知道这个数据库必须能够上网操作,同时作为公司的核心骨干数据库,除了必须是稳定的存储数据库外还必须有很强的数据和数据库控管功能. 我想了想说,就用MYSQL吧.老板问为什么. 我把所知的好处倒背如流地数说一遍,并强调据MySQL执行副总裁Zack Urlocker讲,MySQ在中国的下载量已经超过了美国,中国市场现在是第一大下载量.去年截至九月份的数字是380万的下载量...MYSQL一定是最好的. 老板面有迟疑,说他太不…
1.sqlserver递归查询方式 CTE: if OBJECT_ID('tb','N') is not null   drop table tb;     create table tb(id varchar(3) , pid varchar(3) , name varchar(10));  insert into tb values('001' , null , '广东省');  insert into tb values('002' , '001' , '广州市');   insert i…
下载Firebird3的发布文档,上面列出了开发团队,仔细看了看,原来俄罗斯人是主导(内核开发),法国人.智利人.巴西人.日本人.荷兰人.捷克人都有.共17人,3人全职. able 13.1. Firebird Development Teams Developer               Country                             Major Tasks Dmitry Yemanov              Russian     Full-time data…
select first 10 skip 8 * from t_data   //跳过前8行不要,取10行,即取第9行到18行共10行 select  first 10 * from t_data    //取前10行select  * from t_data rows 11 to 20  //取第11行到20行,共10行,行数从0开始 select  * from t_data rows 11  //取前11行,和First 11是一样 以上加order by 也表示是Order by 之后进…
本代码在:WinXp Pack 3 + Delphi2009 updata1 火鸟Firebird2.5.0.23247下测试通过.使用了Data Access面板的组件用SQL进行操作作者:LAH [懒妹]QQ:112412387 火鸟Firebird数据库的中文参考资料 ■firebird标准连接串  Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey;DbName=C:\document. and Settings\Ad…
比如表结构数据如下: Table:Tree ID Name ParentId 1 一级  0 2  二级 1 3  三级 2 4 四级 3 SQL SERVER 2005查询方法: //上查 with tmpTree as ( select * from Tree where Id=2 union all select p.* from tmpTree inner join Tree p on p.Id=tmpTree.ParentId ) select * from tmpTree //下查…
需求: 一篇文章里有很多评论,每个评论又有很多回复评论,要求: 页面将文章展示出来,且文章的主评论按照评论时间分页展示,回复评论的评论完全展示在每个主评论下面,且按照回复时间排序 最终查询结果SQL查询结果如下: Code: 评论编码,ParentCode:回复评论编码,num:主评论序号,lvl:评论层级,CreateTime:评论创建时间 SQL详细过程如下: 1-先创建我们的数据临时表作为基础数据: a.ContentInfoCode为文章编码 SELECT * INTO #a FROM…
函数:http://my.oschina.net/Kenyon/blog/108303 紧接上述,补充一下: 输入/输出参数的函数demo(输入作为变量影响sql结果,输出作为结果返回) create or replace function f_dept_salary_out2(int, out o_dept text,out o_salary text) returns setof record as $$ declare v_rec record; begin for v_rec in EX…
1.公用表表达式(CTE)的定义 公用表达式的定义包含三部分: 公用表表达式的名字(在WITH之后) 所涉及的列名(可选) 一个SELECT语句(紧跟AS之后), 公用表表达式的好处之一是可以在接下来一条语句中多长引用,记得是接下来一条语句 在MSDN中的原型: WITH expression_name [ ( column_name [,...n] ) ] AS ( CTE_query_definition ) 2.非递归公用表表达式(CTE) 非递归的CTE引用与普通Select查询没有太实…
来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy,所以例子我也就用Python演示了. #安装firebird数据库 sudo apt-get install firebird-super 2,更改firebird中数据库管理员SYSDBA的密码: sudo dpkg-reconfigure firebird2.-super 3,使用gsec命令…
with cte as ( select Id,Pid,DeptName,0 as lvl from Department where Id = 2 union all select d.Id,d.Pid,d.DeptName,lvl+1 from cte c inner join Department d on c.Id = d.Pid ) select * from cte 表结构 Id Pid DeptName ----------- ----------- ---------------…
这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点. 先看原始数据: create table a_test ( parentid ), subid )); ' ); ' ); ' ); ' ); ' ); ' ); ' ); ' ); ' ); ' ); ' ); ' ); commit; select * from a_test; 对应B树结构为: 接下来看一个示例: 要求给出其中一个结点值,求其最终父结点.以7为例,看一下代码 sta…
Oracle中的select语句可以用start with...connect by prior子句实现递归查询,connect by 是结构化查询中用到的, 其基本语法是: select ... from <TableName>where <Conditional-1>start with <Conditional-2>connect by <Conditional-3>; <Conditional-1>:过滤条件,用于对返回的所有记录进行过滤…
Sql语句里的递归查询 SqlServer2005和Oracle 两个版本 以前使用Oracle,觉得它的递归查询很好用,就研究了一下SqlServer,发现它也支持在Sql里递归查询举例说明:SqlServer2005版本的Sql如下:比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据:CREATE TABLE [aaa]( [id] [int] NULL, [pid] [int] NULL, [name] [nchar](10))GOINSERT INTO aa…
原文摘自:http://blog.csdn.net/pdn2000/article/details/6674243 Sql语句里的递归查询 SqlServer2005和Oracle 两个版本 以前使用Oracle,觉得它的递归查询很好用,就研究了一下SqlServer,发现它也支持在Sql里递归查询举例说明:SqlServer2005版本的Sql如下:比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据:CREATE TABLE [aaa]( [id] [int] N…
SQLserver2008使用表达式递归查询语句 --由父项递归下级 with cte(id,parentid,text) as (--父项 select id,parentid,text from treeview where parentid = 450 union all --递归结果集中的下级 select t.id,t.parentid,t.text from treeview as t inner join cte as c on t.parentid = c.id ) select…
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 上面是对递归有个小小的了解.下面给出一个具体的例子 这个例子的作用是根据ID值找出该ID对应值下的地区有哪些? 源代码: ---db2递归查询 CREATE TABLE AreaInfo ( ID INTEGER NOT NULL PRIMARY KEY, ParentID INT,…
在一次项目中遇到一种需求,需要记录某产品的替换记录. 实际应用举例为:产品101被201替换,之后201又被303替换,303又被109替换:产品102被202替换,之后202又被105替换. 现在我们需要在已知任何产品序列号时,可以检索出该产品的整个被替换过程和最终的替换结果. 设计表格如下: 产品替换记录(原序列号,替换后序列号) 示例数据如下: 原序列号 替换后序列号 101 201 102 202 201 303 303 109 202 105   比如,已经表中存在过201这一产品,那…