❶ 怎么创建一个存储过程批量处理所有学生平均成绩,并显示平均成绩前五名的同学
----假设涉及学生表和分数表,课程表
create procere GetTop5
as
begin
select top 5 StudentName
(
select avg(sc.score) as '平均分数' ,s.StudentCode,s.StudentName
from Score sc
inner join Student s on sc.studentCode = s.studentCode
inner join Subject c on sc.SubjectCode = c.SubjectCode
group by s.StudentCode,s.StudentName
)t
order by 平均分数 desc
end
go
❷ 存储过程查询一个表的数据有很多条数据,在java调用这个存储过程怎样让数据根据他的时间只显示前三条
这个根据你的问题.最简易的解决办法就是设置一个大小为3的数组,专门保存前面3个数据
就在你的那个rs.next 那个遍历里面做..遍历到每条数据 就和数组里面的数据进行比较..最终遍历结束 存的三个就是最终的结果了
❸ mysql存储过程中处理多条数据
插入进另一个表里, SQL语句不是仅仅运用在本表内的,可以多表嵌套 这个不要忽略
❹ Oracle存储过程统计信息
不需要execute,直接写dbms_stats.gather_table_stats(就可以,而且专门写个存储过程没意义。
❺ sql 查询每个班前十名
表建的很不合理啊
首先,班级要一张表
学生信息要一张表
成绩一张表
建数据库要有遵守三条原则啊,不然也很不方便查询
你这题,用分组也没办查. 楼上两位完全就是骗分的...没一个正确的
就说一楼的这句SELECT TOP 10 * FROM 表名 WHERE 条件 ORDER BY 成绩 DESC ...请问条件是什么?
再说二楼的selet top 10 * from 学生表 order by 成绩 desc
你这查出来的只是所有班所有前十名的成绩.而不是每个班的前十名
如果表只有一张,只能分班查...比如班级列叫calss,其中有一个班级Classone
select top 10 * from 表名 where class='Classone' order by 成绩
❻ 一个存储过程的统计代码怎么写
select distinct count(*)from 表名
distinct 去除重复值;
count(*) 统计记录数
❼ 编写显示部门信息的存储过程,统计各部门人数,oracle
create or replace package pkg_types
is
type my_cursor is ref cursor ;
end ;
create or replace procere p_sum_dept( ocur out pkg_types.my_cursor)
is
begin
open ocur for
select deptno
count(empno)
from employee
group by deptno;
end ;
/
❽ sql server2000存储过程中如何使用函数或者什么,截取字段前几位的内容,例如asp中的mid()函数功能
SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。
语法
SUBSTRING ( expression , start , length )
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
说明 由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。
返回类型
如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。
返回字符串的类型与给定表达式的类型相同(表中显示的除外)。
给定的表达式 返回类型
text varchar
image varbinary
ntext nvarchar
注释
在字符数中必须指定使用 ntext、char 或 varchar 数据类型的偏移量(start 和 length)。在字节数中必须指定使用 text、image、binary 或 varbinary 数据类型的偏移量。
说明 兼容级别可能影响返回值。有关兼容级别的更多信息,请参见 sp_dbcmptlevel。
示例
A. 在字符串上使用 SUBSTRING
下例显示如何只返回字符串的一部分。该查询在一列中返回 authors 表中的姓氏,在另一列中返回 authors 表中的名字首字母。
USE pubs
SELECT au_lname, SUBSTRING(au_fname, 1, 1)
FROM authors
ORDER BY au_lname
下面是结果集:
au_lname
---------------------------------------- -
Bennet A
Blotchet-Halls R
Carson C
DeFrance M
del Castillo I
...
Yokomoto A
(23 row(s) affected)
下例显示如何显示字符串常量 abcdef 中的第二个、第三个和第四个字符。
SELECT x = SUBSTRING('abcdef', 2, 3)
下面是结果集:
x
----------
bcd
(1 row(s) affected)
B. 在 text、ntext 和 image 数据上使用 SUBSTRING
下例显示如何从 pubs 数据库的 publishers 表内的每个 text 和 image 数据列中返回前 200 个字符。text 数据以 varchar 的形式返回,image 数据则以 varbinary 的形式返回。
USE pubs
SELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,
SUBSTRING(pr_info, 1, 10) AS pr_info
FROM pub_info
WHERE pub_id = '1756'
下面是结果集:
pub_id logo pr_info
------ ---------------------- ----------
1756 0x474946383961E3002500 This is sa
(1 row(s) affected)
下例显示 SUBSTRING 在 text 和 ntext 数据上的效果。首先,下例在 pubs 数据库内创建一个名为 npr_info 的新表。然后,在 npr_info 表中用 pub_info.pr_info 列的前 80 个字符创建 pr_info 列,并添加ü作为首字符。最后,INNER JOIN 检索所有出版商标识号以及 text 和 ntext 出版商信息列的 SUBSTRING。
IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 'npub_info')
DROP TABLE npub_info
GO
-- Create npub_info table in pubs database. Borrowed from instpubs.sql.
USE pubs
GO
CREATE TABLE npub_info
(
pub_id char(4) NOT NULL
REFERENCES publishers(pub_id)
CONSTRAINT UPKCL_npubinfo PRIMARY KEY CLUSTERED,
pr_info ntext NULL
)
GO
-- Fill the pr_info column in npub_info with international data.
RAISERROR('Now at the inserts to pub_info...',0,1)
GO
INSERT npub_info VALUES('0736', N'üThis is sample text data for New Moon Books, publisher 0736 in the pubs database')
INSERT npub_info values('0877', N'üThis is sample text data for Binnet & Hardley, publisher 0877 in the pubs databa')
INSERT npub_info values('1389', N'üThis is sample text data for Algodata Infosystems, publisher 1389 in the pubs da')
INSERT npub_info values('9952', N'üThis is sample text data for Scootney Books, publisher 9952 in the pubs database')
INSERT npub_info values('1622', N'üThis is sample text data for Five Lakes Publishing, publisher 1622 in the pubs d')
INSERT npub_info values('1756', N'üThis is sample text data for Ramona Publishers, publisher 1756 in the pubs datab')
INSERT npub_info values('9901', N'üThis is sample text data for GGG&G, publisher 9901 in the pubs database. GGG&G i')
INSERT npub_info values('9999', N'üThis is sample text data for Lucerne Publishing, publisher 9999 in the pubs data')
GO
-- Join between npub_info and pub_info on pub_id.
SELECT pr.pub_id, SUBSTRING(pr.pr_info, 1, 35) AS pr_info,
SUBSTRING(npr.pr_info, 1, 35) AS npr_info
FROM pub_info pr INNER JOIN npub_info npr
ON pr.pub_id = npr.pub_id
ORDER BY pr.pub_id ASC
❾ 求一条SQL语句:能一次计算出各科前10名学生的平均成绩。
select '语文' as 科目, avg(语文) as 平均成绩 from
(select top 10 语文 from 成绩表 order by 语文 desc) as x
union all
select '数学' as 科目, avg(数学) as 平均成绩 from
(select top 10 数学 from 成绩表 order by 数学 desc) as y
union all
select '英语' as 科目, avg(英语) as 平均成绩 from
(select top 10 英语 from 成绩表 order by 英语 desc) as z
如果还有其它科目,可以用同样的方式往后加。
❿ ·创建存储过程统计各教师任课的学生人数;Oracle回答
创建
1
2
3
4
5
create
proc
p_sumsocre
as
select
a.学号,a.姓名,sum(b.学分)
as
总学分
from
学生表
a,课程表
b,选课表
c
where
a.学号=c.学号
and
b.课程号=c.课程号
执行
1
exec
p_sumsocre
以上为sqlserver
写法,其他数据库写法不同