我有一张冠军桌:Letter1,Letter2,Letter3 ......直到6。
Structure of my table:
TYPEID | BenefitsID | Letter1 | Coef1 | Letter2 | Letter3 | Coef3 | Letter4 | Coef4 | Letter5 | Coef5 | Letter6 | Coef6 | Resultat
我想在WHILE循环中发出一个select请求,如下所示:
@count =1;
While (@count<7)
begin
@letter = **(select letter+@count from ....)**
..
end
我想要的结果是选择Letter1,Letter2 ......和Coef1,Coef2 ......的值并将它们相乘以在冠军Resultat中插入它们
我的问题是如何在一个请求中选择Letter1,Letter2,....大胆的请求会起作用吗?或者我应该使用其他东西吗?
我使用的是SQL Server 2008 ..
答案 0 :(得分:0)
假设你使用的是MySQL,你想要这样的东西吗?
select concat(letter, (@count := @count + 1)
from t cross join
(select @count := 0) params
order by ??
limit 7;
答案 1 :(得分:0)
正如我评论的那样,数字列表示设计不良的良好指示 话虽如此,动态SQL将满足您的需求。
declare @count int = 1
,@stmt nvarchar(max)
While (@count<7)
begin
set @stmt = 'select Letter' + cast(@count as varchar(10)) + ' from mytable'
exec sp_executesql @stmt
set @count = @count + 1
end