首页 相关文章 SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用

SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用

  先看如下一个数据表(t_tree):

  上图显示了一个表中的数据,这个表有三个字段:id、node_name、parent_id。实际上,这个表中保存了一个树型结构,分三层:省、市、区。其中id表示当前省、市或区的id号、node_name表示名称、parent_id表示节点的父节点的id。

  现在有一个需求,要查询出某个省下面的所有市和区(查询结果包含省)。如果只使用SQL语句来实现,需要使用到游标、临时表等技术。但在SQL Server2005中还可以使用CTE来实现。

  从这个需求来看属于递归调用,也就是说先查出满足调价的省的记录,在本例子中的要查“辽宁省”的记录,如下:

  id  node_name  parent_id

  1   辽宁省    0

  然后再查所有parent_id字段值为1的记录,如下:

  id  node_name  parent_id

  2   沈阳市    1

  3   大连市    1

  最后再查parent_id字段值为2或3的记录,如下:

  id  node_name  parent_...[ 查看全文 ]

2016-02-19 标签:

SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用的相关文章

手机页面
收藏网站 回到头部