1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
from SC where C#='002') b
where a.score>b.score and a.s#=b.s#;
2、查询平均成绩大于60分的同学的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;
我的意思是这两段代码接着写下来就行吗?两段代码之间需要分割吗
CREATE PROC dbo.testpro
@str NVARCHAR(100), --包子
@str1 NVARCHAR(100) --馒头
as
SELECT *
FROM 表
WHERE ( @str IS NULL --如果传过来包子就查询,如果没传过来包子就不查询
OR 查询列 = @str
)
AND ( @str1 IS NULL --如果传过来馒头就查询,如果没传过来馒头就不查询
OR 查询列 = @str1
);
GO
[quote=引用 3 楼 sinat_28984567 的回复:]
查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。