SELECT '语文优秀' [状态], MIN(语文)[学科] FROM ( SELECT TOP 15 PERCENT 语文 FROM cj ORDER BY 语文 DESC )a
UNION ALL
SELECT '数学' , MIN(数学) FROM ( SELECT TOP 15 PERCENT 数学 FROM cj ORDER BY 数学 DESC )b
UNION ALL
SELECT '英语' , MIN(英语) FROM ( SELECT TOP 15 PERCENT 英语 FROM cj ORDER BY 英语 DESC )c
UNION ALL
SELECT '生物' ,MIN(生物) FROM ( SELECT TOP 15 PERCENT 生物 FROM cj ORDER BY 生物 DESC )d
UNION ALL
SELECT '政治' , MIN(政治) FROM ( SELECT TOP 15 PERCENT 政治 FROM cj ORDER BY 政治 DESC )e
UNION ALL
SELECT '历史' , MIN(历史) FROM ( SELECT TOP 15 PERCENT 历史 FROM cj ORDER BY 历史 DESC)f请问在存储过程中,如何使用变量、循环等实现如上的查询,不胜感谢
UNION ALL
SELECT '数学' , MIN(数学) FROM ( SELECT TOP 15 PERCENT 数学 FROM cj ORDER BY 数学 DESC )b
UNION ALL
SELECT '英语' , MIN(英语) FROM ( SELECT TOP 15 PERCENT 英语 FROM cj ORDER BY 英语 DESC )c
UNION ALL
SELECT '生物' ,MIN(生物) FROM ( SELECT TOP 15 PERCENT 生物 FROM cj ORDER BY 生物 DESC )d
UNION ALL
SELECT '政治' , MIN(政治) FROM ( SELECT TOP 15 PERCENT 政治 FROM cj ORDER BY 政治 DESC )e
UNION ALL
SELECT '历史' , MIN(历史) FROM ( SELECT TOP 15 PERCENT 历史 FROM cj ORDER BY 历史 DESC)f请问在存储过程中,如何使用变量、循环等实现如上的查询,不胜感谢
因为不清楚LZ的表结构,无法帮你写语句喔.
--給你一個思路吧
--1)創建存儲過程
CREATE PROCEDURE myprocedure
AS
DECLARE @i INT
set @i=1
while @i<=3
BEGIN
insert #temp (字段1,字段2)
select 字段1,字段2 from cj where 班级=@i
set @i=@i+1
END
GO
--2)創建臨時表保存循環查詢的結果
create table #temp (字段1 varchar(10),字段2 int);
--3)執行存儲過程
exec myprocedure
--4)查詢循環查詢的結果
select * from #temp
AS
create table #temp(字段1,字段2)
DECLARE @i INT
set @i=1
while @i<=3
BEGIN
insert #temp (字段1,字段2)
select 字段1,字段2 from cj where 班级=@i
set @i=@i+1
END
select * from #temp
GO