×
注意!页面内容来自https://bbs.csdn.net/topics/280003582,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页
CREATE TABLE table1(f1 INT,f2 INT,f3 INT,f4 INT,f5 INT,f6 INT,f7 INT,f8 INT,f9 INT,f10 INT,f11 INT,f12 INT)
GO
INSERT table1 SELECT 1,2,3,4,4,5,6,6,67,7,7,0
UNION ALL SELECT 2,3,4,54,6,7,2,4,5,6,1,1
GO
DECLARE @s VARCHAR(8000)
SELECT @s=ISNULL(@s+'+','') + 'SUM(f' + RTRIM(id) + ')' FROM
(
SELECT 1 id
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
UNION ALL
SELECT 5
UNION ALL
SELECT 6
UNION ALL
SELECT 7
UNION ALL
SELECT 8
UNION ALL
SELECT 9
UNION ALL
SELECT 10
UNION ALL
SELECT 11
UNION ALL
SELECT 12
) x WHERE id<=5 --这里改为你要传入的值即可
EXEC('SELECT ' + @s + ' FROM table1')
DROP TABLE table1
GO
declare @i int,@s nvarchar(4000)
set @i=2
set @s=''
while @i>0
select @s='+sum([imoney'+rtrim(@i)+'])'+@s,@i=@i-1
set @s=stuff(@s,1,1,'')
--print 'select '+@s+' from Table11' --显示语句
exec('select '+@s+' from Table11')CREATE PROC dbo.p
@tb_name sysname,
@iMoney int
AS
DECLARE @column VARCHAR(1000);
SET @column='';
SELECT @column=@column+'+SUM(['+name+'])'
FROM sys.columns
WHERE object_id=OBJECT_ID(@tb_name)
AND column_id<=@iMoney
ORDER BY column_id;
SET @column=STUFF(@column,1,1,'');
EXEC ('SELECT '+@column+' AS SumMoney FROM ['+@tb_name+']');
GO