在SQL Server查询中循环SELECT

时间:2015-10-09 01:43:21

标签: sql sql-server

我试图使用SQL Server中的函数F(a,b,x)来获取几个列,例如20个值。基本上它就像

SELECT 
    col1, col2, F(a,b,1), F(a,b,2), ... F(a,b,20) 
FROM 
    table

是否可以使用循环到SELECT F(a,b,@i),其中0< @i< 21?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有"循环"在SQL语句中。但是,你可以接近:

select col1, col2, n.n, f(a, b, n.n)
from table t cross join
     (select 1 as n union all select 2 union all select 3 . . .
      select 20
     ) n;

确切的语法取决于您使用的数据库。还有一些方法可以再次生成数字,具体取决于数据库。

这会为表中的每一行生成20行,而不是20列。如果你真的需要列中的结果,结果可以转动。