当前位置: 代码迷 >> Sql Server >> SQL查询有关问题.解决后立马结贴.们进来看看
  详细解决方案

SQL查询有关问题.解决后立马结贴.们进来看看

热度:96   发布时间:2016-04-27 18:40:11.0
SQL查询问题...急急..在线等,解决后立马结贴.大虾们进来看看
有表Test,假如有如下记录:
ID type question resulta resultb resultc resultd answer
1 单选题 问题1 选项A 选项B 选项C 选项D A
2 单选题 问题1 选项A 选项B 选项C 选项D B
3 多选题 问题1 选项A 选项B 选项C 选项D AB
4 单选题 问题1 选项A 选项B 选项C 选项D C
5 多选题 问题1 选项A 选项B 选项C 选项D AD
6 多选题 问题1 选项A 选项B 选项C 选项D BC
7 多选题 问题1 选项A 选项B 选项C 选项D AD
8 多选题 问题1 选项A 选项B 选项C 选项D CD
9 多选题 问题1 选项A 选项B 选项C 选项D BC
10 多选题 问题1 选项A 选项B 选项C 选项D BCD
11 多选题 问题1 选项A 选项B 选项C 选项D AB
12 多选题 问题1 选项A 选项B 选项C 选项D AD
13 多选题 问题1 选项A 选项B 选项C 选项D AC
14 多选题 问题1 选项A 选项B 选项C 选项D ABCD
15 单选题 问题1 选项A 选项B 选项C 选项D D
16 单选题 问题1 选项A 选项B 选项C 选项D B
注:ID为题目的ID,type为题的类型,qusetion为问题,resulta,b,c,d为题的四个选项,answer为问题的标准答案
现要求一条sql语句随机取出5道单选题记录和10道多选题记录(是随机取出,而且题目不能重复).小弟不会,特意来这请教各位大虾帮帮忙.解决立马结贴,在线等.分数不够可再加..谢谢大虾们帮忙..

------解决方案--------------------
SQL code
select top 5 * from Test where len(answer)=1 order by newid()select top 10 * from Test where len(answer)>1 order by newid()
------解决方案--------------------
SQL code
select top 100 percent * from (select top 5 * from tb where type = '单选题' order by newid()) tunion allselect top 100 percent * from (select top 10 * from tb where type = '多选题' order by newid()) t
------解决方案--------------------
SQL code
declare @tb table (ID int,type varchar(6),question varchar(5),resulta varchar(5),resultb varchar(5),resultc varchar(5),resultd varchar(5),answer varchar(4))insert into @tbselect 1,'单选题','问题1','选项A','选项B','选项C','选项D','A' union allselect 2,'单选题','问题1','选项A','选项B','选项C','选项D','B' union allselect 3,'多选题','问题1','选项A','选项B','选项C','选项D','AB' union allselect 4,'单选题','问题1','选项A','选项B','选项C','选项D','C' union allselect 5,'多选题','问题1','选项A','选项B','选项C','选项D','AD' union allselect 6,'多选题','问题1','选项A','选项B','选项C','选项D','BC' union allselect 7,'多选题','问题1','选项A','选项B','选项C','选项D','AD' union allselect 8,'多选题','问题1','选项A','选项B','选项C','选项D','CD' union allselect 9,'多选题','问题1','选项A','选项B','选项C','选项D','BC' union allselect 10,'多选题','问题1','选项A','选项B','选项C','选项D','BCD' union allselect 11,'多选题','问题1','选项A','选项B','选项C','选项D','AB' union allselect 12,'多选题','问题1','选项A','选项B','选项C','选项D','AD' union allselect 13,'多选题','问题1','选项A','选项B','选项C','选项D','AC' union allselect 14,'多选题','问题1','选项A','选项B','选项C','选项D','ABCD' union allselect 15,'单选题','问题1','选项A','选项B','选项C','选项D','D' union allselect 16,'单选题','问题1','选项A','选项B','选项C','选项D','B' union allselect 17,'单选题','问题1','选项A','选项B','选项C','选项D','B' union allselect 18,'单选题','问题1','选项A','选项B','选项C','选项D','B'select * from (select top 5 * from @tb where type='单选题' order by newid()) Tunion all select * from (select top 10 * from @tb where type='多选题' order by newid()) T2order by type, id/*ID          type   question resulta resultb resultc resultd answer----------- ------ -------- ------- ------- ------- ------- ------1           单选题    问题1      选项A     选项B     选项C     选项D     A4           单选题    问题1      选项A     选项B     选项C     选项D     C15          单选题    问题1      选项A     选项B     选项C     选项D     D17          单选题    问题1      选项A     选项B     选项C     选项D     B18          单选题    问题1      选项A     选项B     选项C     选项D     B3           多选题    问题1      选项A     选项B     选项C     选项D     AB5           多选题    问题1      选项A     选项B     选项C     选项D     AD6           多选题    问题1      选项A     选项B     选项C     选项D     BC7           多选题    问题1      选项A     选项B     选项C     选项D     AD8           多选题    问题1      选项A     选项B     选项C     选项D     CD9           多选题    问题1      选项A     选项B     选项C     选项D     BC10          多选题    问题1      选项A     选项B     选项C     选项D     BCD11          多选题    问题1      选项A     选项B     选项C     选项D     AB12          多选题    问题1      选项A     选项B     选项C     选项D     AD13          多选题    问题1      选项A     选项B     选项C     选项D     AC(15 row(s) affected)*/
  相关解决方案