技术开发 频道

SQL Server:详解T-SQL的公用表表达式

  前面我一直强调“在接下来的一条语句中”,意味着只能接下来一条使用:

  由于CTE只能在接下来一条语句中使用,因此,当需要接下来的一条语句中引用多个CTE时,可以定义多个,中间用逗号分隔:

  递归公用表表达式(CTE)

  递归公用表表达式很像派生表(Derived Tables ),指的是在CTE内的语句中调用其自身的CTE.与派生表不同的是,CTE可以在一次定义多次进行派生递归.对于递归的概念,是指一个函数或是过程直接或者间接的调用其自身,递归的简单概念图如下:

  递归在C语言中实现的一个典型例子是斐波那契数列:

long fib(int n)   
{  
    
if (n==0) return 0;
  
if (n==1) return 1;   
    
if (n>1) return fib(n-1)+fib(n-2);
}

  上面C语言代码可以看到,要构成递归函数,需要两部分。第一部分是基础部分,返回固定值,也就是告诉程序何时开始递归。第二部分是循环部分,是函数或过程直接或者间接调用自身进行递归.

0
相关文章