SQL的查询语句(题有点多,所以100分)
发布网友
发布时间:2022-04-10 06:19
我来回答
共5个回答
热心网友
时间:2022-04-10 07:48
成都信息工程学院的吧
我有几道题的:
1. 编写程序实现[1,40]的奇数平方和赋x,偶数平方和赋y,并输出x,y的值。
declare @a int,@b int ,@X int,@Y int,@sum int,@c int,@d int
set @a=1
set @b=0
set @X=0
while @a<=40
begin
set @b=@a*@a
set @X=@X+@b
set @a=@a+2
end
set @c=2
set @d=0
set @Y=0
while @c<=40
begin
set @d=@c*@c
set @Y=@Y+@d
set @c=@c+2
end
select @X as 奇数,@Y as 偶数
2. 编写程序计算1-5000之间(含1和5000)所有能被9整除的数的个数及总和。
declare @n int,@sum int
set @n=9
set @sum=0
while @n<=5000
begin
set @sum=@sum + @n
set @n=@n+9
end
select @sum
3. 计算1-9999以内的所有完全平方数(如36=6*6,则称36为完全平方数)的总和及个数。
declare @n int,@sum int ,@i int,@count int
set @i=1
set @count=-1
set @sum=0
set @n=0
while @n<=9999
begin
set @sum=@sum+@n
set @n=@i*@i
set @i=@i+1
set @count=@count + 1
end
select @count,@sum
4. 通过while循环计算10!。
declare @n int ,@sum int
set @n=1
set @sum=1
while @n<=10
begin
set @sum=@sum*@n
set @n=@n+1
end
select @sum
5. 完成程序依次显示大写字母A~Z(一行显示一个字母)。
declare @i int
set @i=0
while @i<26
begin
print char(ascii('A')+ @i)
set @i=@i+1
end
6. 完成程序依次显示大写字母Z~A(一行显示一个字母)。
declare @i int
set @i=0
while @i<26
begin
print char(ascii('Z')-@i)
set @i=@i+1
end
7. 显示今天是第几季度,输出格式为“第一季度”、“第二季度”、“第三季度”、“第四季度”。
declare @n varchar
set @n=(select datename(q,getdate()))
print '第'+@n+'季度'
8. 查询2008级所有同学的学号、总评成绩的平均分、等级(90分以上A,80-90为B,70-80为C,60-70为D,60分以下为E),并按照等级升序输出(即先输出*学生,再输出B级学生,最后输出E级学生)。
select 学号,avg(总评成绩),
(case when avg(总评成绩)>=90 then 'A'
when avg(总评成绩)>=80 and avg(总评成绩)<90 then 'B'
when avg(总评成绩)>=70 and avg(总评成绩)<80 then 'C'
when avg(总评成绩)>=60 and avg(总评成绩)<70 then 'D'
else 'E'end)等级
from 成绩 where 年级=2008
group by 学号
order by avg(总评成绩) desc
9. 通过while循环绘制如下图形:
*
***
*****
*******
*********
declare @i int
set @i=1
while @i<=5
begin
print space(5-@i)+replicate('*',2*@i-1)
set @i=@i+1
end
热心网友
时间:2022-04-10 09:06
大哥,你把几个表,每个表的字段列出来
热心网友
时间:2022-04-10 10:41
这么多啊!你弄一千分我给你答!
热心网友
时间:2022-04-10 12:32
题太多了,费时间。
热心网友
时间:2022-04-10 14:40
分还是太少