我试图使用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?
谢谢!
答案 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列。如果你真的需要列中的结果,结果可以转动。