1. sql中排序后从第10个数据开始取5个数据怎么写
--SQL Server 2000
select top (5) *
from ( select top 15 * from 表 order by 排序列 desc ) as a
order by 排序列 desc
--SQL Server 2005,2008,2008R2,2012通用方法
select *
from (
select *,row_number() over (order by 排序列 desc) as id
from 表
) a
where id between 10 and 15
order by id
--SQL Server 2012
select * from 表 order by 排序列 desc OFFSET 10 ROW FETCH NEXT 5 ROWS ONLY
2. SQL 如何写班级编号必须为5个数字的代码
SQLcheck约束即可
createtabletable_name(classNointcheck(length(classNo)=5)
3. sqlserver中 已知变量@id 为5位数,请问怎么取到@id的每一位数
declare@strvarchar(100),@avarchar(50),@bvarchar(50),@cvarchar(50),@dvarchar(50),@evarchar(50)
set@str='
set@a=left(@str,1)
set@b=substring(@str,2,1)
set@c=substring(@str,3,1)
set@d=substring(@str,4,1)
set@e=substring(@str,5,1)
print'a='+@a
print'b='+@b
print'c='+@c
print'd='+@d
print'e='+@e
这样每个数字获取到,可以进行后面的计算
4. 用SQL语句完成以下操作
1
select * from 学生表 a,班级表 b where a.班级编号=b.班级编号
2
select top 10 * from 班级表
3
select a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号 and a.学号='20050101'
4
select top 10 a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号 and a.学号='20050101'
order by c.成绩 desc
5
select top 5 * into 科技学生信息表 from 学生表
6
select a.姓名,b.课程名称,c.成绩
from 学生表 a,课程表 b,成绩表 c where a.学号=c.学号 and b.课程编号=c.课程编号
and a.学号='201001002'
and c.成绩 between 80 and 90
7
select * from 课程表 where 课程名称 like '大学%'
8
select a.姓名,a.学号,avg(b.成绩) as 平均成绩
from 学生表 a,成绩表 b where a.学号=b.学号 group by a.姓名,a.学号
9
select a.姓名,a.学号,sum(b.成绩) as 总分,count(*) as 课程门数,avg(b.成绩) as 平均分
from 学生表 a,成绩表 b where a.学号=b.学号 group by a.姓名,a.学号
10
select a.学号,a.姓名,b.成绩,b.课程编号
from 学生表 a,成绩表 b where a.学号=b.学号
希望你能通过以上的答案,自己弄懂都是什么意思,over
5. 关于SQL数据库自动编号取值的问题
设置一个表,表里面记录最后一次添加记录的编号,用一个存储过程,然后用这个编号加1的方法,并返回生成的记录号,没见过有什么漏洞,唯一可能就是形成编号不连续,也就是生成过之后没有用,或是已经删除,我做测试的时候两个客户端分别添加10000条记录,在1分钟左右的时间内完成,无重号现象,我参与过的一个医院系统就是用这种方法
6. 数据库中班级编号怎么表示
SQL check约束即可。
create table table_name classNo int check(length(classNo) = 5)。
该操作可以实现输入5个数字的班级编号,如果想改变编号位置,直接修改数字即可。
7. sql随机生成5位数编号函数、存储过程
CREATE FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET latin1
BEGIN
DECLARE chars_str varchar(100) DEFAULT '';
DECLARE return_str varchar(255) DEFAULT '' ;
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END
8. sql 语句一个字段有5位数字,我想自己后三位数字有两个相同的,怎么查询
是要查出后三位中有两个数字相同的该字段是吧?
select 目标字段
from tablename
where substring('目标字段',3,1)=substring('目标字段',4,1) or
substring('目标字段',3,1)=substring('目标字段',5,1) or
substring('目标字段',4,1)=substring('目标字段',5,1) or
这种方法查出来的字段可能包括后三位都相同的情况,楼主可以自己再加条件,主要思路就是这样
9. SQL语句中,编码字段中有12345、12346、12347、35468、5646578、4654987498......我想帅选中5位数字的编码
select 编码字段名 from table where 编码字段名 like'%[0-9]%'and len(编码字段名)=5 and 编码字段名 not like'%[a-z]%'
10. SQL的问题:数据库中已经有Student表,假设学号的5个数字中,前两位代表年级,后三位为序号
select * from Student order by 学号 desc
这个不用用到substring,题目根据就没有需要用到substring的地方啊。