ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:32.48KB ,
资源ID:10772801      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10772801.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(sql例题附代码测试数据.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

sql例题附代码测试数据.docx

1、sql例题附代码测试数据/*第一题:表中有以下資料季別客戶款式單號品名11Q3 FIL 25131640 10-0646 男梭織運動上衣11Q3 FIL 25131640 10-0655 男梭織運動上衣(兩面穿)SP10 HIN 80236 09-0155 女平針背心SP10 HIN 80236 10-0120 女背心FA09 HIN 80221 09-0059 男平織上衣FA09 HIN 80221 09-0058 男針織上衣怎麼得出的最大單號,結果為:11Q3 FIL 25131640 10-0655 男梭織運動上衣(兩面穿)SP10 HIN 80236 10-0120 女背心FA09 H

2、IN 80221 09-0059 男平織上衣*/-code:-create table tb-(JB varchar(20),- KH varchar(20),- KS varchar(20),- DH varchar(20),- PM nvarchar(50) - insert into tb - select 11Q3,FIL,25131640,10-0646,男梭織運動上衣 union all-select 11Q3,FIL, 25131640, 10-0655, 男梭織運動上衣(兩面穿) union all-select SP10, HIN, 80236, 09-0155, 女平針背心

3、 union all-select SP10, HIN, 80236, 10-0120, 女背心 union all-select FA09, HIN, 80221, 09-0059, 男平織上衣 union all-select FA09, HIN, 80221, 09-0058, 男針織上衣-SELECT * FROM TB-select * from tb where DH in (select max(DH)from tb group by JB)/*第二题:-订单号,商品分类id,商品sku,销售数量orderuid,classid,sku,amountso01,1,a1,10so0

4、2,1,a2,5so03,1,a3,15so04,2,b1,10so05,2,b2,20so06,2,b3,30so07,3,c1,10so08,3,c2,5so09,3,c3,10so10,4,d2,1so11,1,a2,10 (不同的订单购商品明细一样)so11,3,c2,5 (不同的订单购商品明细一样)要求:按销售量统计,按分类分组,取销售前位结果(横着排sql):classid,sku1,sku21,a2,a32,b2,b33,c1,c24,d2结果(竖着排sql2)classid,sku1,a21,a32,b22,b33,c13,c24,d2CREATE TABLE Goods(or

5、deruid VARCHAR(10),classid INT,sku VARCHAR(10),amount INT)GOINSERT INTO Goods VALUES(so01,1,a1,10)INSERT INTO Goods VALUES(so02,1,a2,5)INSERT INTO Goods VALUES(so03,1,a3,15)INSERT INTO Goods VALUES(so04,2,b1,10)INSERT INTO Goods VALUES(so05,2,b2,20)INSERT INTO Goods VALUES(so06,2,b3,30)INSERT INTO G

6、oods VALUES(so07,3,c1,10)INSERT INTO Goods VALUES(so08,3,c2,5)INSERT INTO Goods VALUES(so09,3,c3,10)INSERT INTO Goods VALUES(so10,4,d2,1)INSERT INTO Goods VALUES(so11,1,a2,10)INSERT INTO Goods VALUES(so11,3,c2,5)解法一:use students3;with c as(select sum(amount) as sums,classid,skufrom Goodsgroup by cla

7、ssid,sku)select classid,skufrom(select classid,sku,row_number() over(partition by classid order by sums desc) as row from c) twhere row=1 or row=2解法二:use students3godrop table #tempselect sum(amount) as sum,classid,sku into #temp from Goods group by classid,skuselect classid,sku from (select classid

8、,sku ,row_number()over(partition by classid order by sum desc)as rownum from #temp )twhere rownum=1 or rownum=2*/第三题:- 要查询出列C# 01课程比课程高信息- 表/*S# C# SCORE01 01 80.001 02 90.001 03 99.002 01 70.002 02 60.002 03 80.003 01 80.003 02 80.003 03 80.004 01 50.004 02 30.004 03 20.005 01 76.005 02 87.006 01 3

9、1.006 03 34.007 02 89.007 03 98.0-想要输出的结果S# C# SCORE02 01 70.002 02 60.002 03 80.004 01 50.004 02 30.004 03 20.0. 表create table SC(S# varchar(10),C# varchar(10),score decimal(18,1) insert into SC values(01 , 01 , 80) insert into SC values(01 , 02 , 90) insert into SC values(01 , 03 , 99) insert into

10、 SC values(02 , 01 , 70) insert into SC values(02 , 02 , 60) insert into SC values(02 , 03 , 80) insert into SC values(03 , 01 , 80) insert into SC values(03 , 02 , 80) insert into SC values(03 , 03 , 80) insert into SC values(04 , 01 , 50) insert into SC values(04 , 02 , 30) insert into SC values(0

11、4 , 03 , 20) insert into SC values(05 , 01 , 76) insert into SC values(05 , 02 , 87) insert into SC values(06 , 01 , 31) insert into SC values(06 , 03 , 34) insert into SC values(07 , 02 , 89) insert into SC values(07 , 03 , 98) go解法一:SELECT *FROM SC AS a WHERE NOT EXISTS(SELECT 1 FROM SC AS b WHERE

12、 S#=01 AND NOT EXISTS(SELECT 1 FROM SC WHERE S#=a.S# AND C#=b.C# AND scoreb.score and b.C#=02) )use students3select * from SC where S# in(select S# from SC as a where C#=01and exists (select S# from SC as b where a.S#=b.S# and a.scoreb.score and b.C#=02 )*/*第四题:我想建一个通过传递参数创建表的存储过程,现在存储过程创建好了,但是用命令执行

13、的时候总出错,代码如下:create proc proc1(tname varchar(50)ASBEGINDeclare tablename As varchar(50),sql As varchar(5000)set tablename = tnameset sql=create table +tablename+(id int IDENTITY (1,1) PRIMARY KEY ,uname nVarChar(50) null)exec(sql)END这个是存储过程,存储过程本身是没有问题的我执行的时候用exec dbo.proc1 test可以实现,但exec dbo.proc1 1

14、23就不行会报错说消息102,级别15,状态1,第1 行123 附近有语法错误。这是为什么?改成nvchar类型的也不行,到底执行存储过程的时候怎么加参数解:主要是因为被认为是数字,而不是一个有效的名称.加上123 即可。*/-第五题:/*SQL 多行相同值,只显示第一行的数据显示效果:1 101 201 331 502 20需要显示的效果是:1 10 20 33 502 20 create table Num(id int ,score int)insert into Numselect 1,10 union allselect 1,20 union allselect 1,33 union

15、 allselect 1,50 union allselect 2,20解法一:;with cte as( select *,rowNum=ROW_NUMBER() over(partition by id order by score) from Num)select case when rowNum=1 then cast(id as varchar) else end AS id,score from cte解法二:;with cte as(select rid=row_number() over (partition by id order by score),* from Num)s

16、elect case when rid=1 then ltrim(id) else end,score from cte解法三:use students3drop table #tempselect *,rowNum=ROW_NUMBER() over(partition by id order by score) into #temp from Num select case when rownum=1 then ltrim(id)else end as id,score from #temp*/*第六题:请教各位高人个问题。我想根据一个时间段,列出时间段内每一天的日期(日期+星期)例如:b

17、egintime=2011-9-1 endtime=2011-9-30我想通过上面的选择列出下面结果2011-9-1 2011-9-2 2011-9-3 2011-9-4 2011-9-5 2011-9-6 2011-9-7 。等等 星期四星期五星期六星期日星期一星期二星期三。等等解法一:declare sdate datetimedeclare edate datetimeset sdate = 2011-09-01set edate = 2011-09-30select 日期= dateadd(dd,num,sdate) ,星期= datename(weekday , dateadd(dd

18、,num,sdate)from (select isnull(select count(1) from sysobjects where idt.id),0) as num from sysobjects t) awhere dateadd(dd,num,sdate)=edateorder by 日期解法二:declare startDate datetimedeclare endDate datetimeSELECT startDate = 2011-09-01 ,endDate = 2011-09-30;WITH tb AS (SELECT startDate AS dateUNION a

19、llSELECT DATEADD(DAY,1,date) FROM tb WHERE DATEendDate)SELECT tb.date , datename(weekday,tb.date)from tb*/*第七题:使用EXISTS 和NOT EXISTS 查找交集与差集使用EXISTS 和NOT EXISTS 引入的子查询可用于两种集合原理的操作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。差集包含只属于两个集合中的第一个集合的元素。city 列中authors 和publishers 的交集是作者和出版商共同居住的城市的集合。USE pubsSELECT DISTIN

20、CT cityFROM authorsWHERE EXISTS (SELECT * FROM publishers WHERE authors.city = publishers.city)下面是结果集:city-Berkeley(1 row(s) affected)当然,该查询可以写成一个简单的联接。USE pubsSELECT DISTINCT authors.cityFROM authors INNER JOIN publishersON authors.city = publishers.citycity 列中authors 和publishers 的差集是作者所居住的、但没有出版商居

21、住的所有城市的集合,也就是除Berkeley 以外的所有城市。USE pubsSELECT DISTINCT cityFROM authorsWHERE NOT EXISTS (SELECT * FROM publishers WHERE authors.city = publishers.city)该查询也可以写成:USE pubsSELECT DISTINCT cityFROM authorsWHERE city NOT IN (SELECT city FROM publishers)*/*第八题:SELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS

22、 HDID , Y AS CHECK_RESULT, 1 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , N AS CHECK_RESULT, 1 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , Y AS CHECK_RESULT, 2 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-066331

23、5B90B8 AS HDID , Y AS CHECK_RESULT, 3 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , Y AS CHECK_RESULT, 4 CHECK_ITEM_GROUP_ID例如CHECK_ITEM_GROUP_ID 为的记录,在CHECK_RESULT中,同时有Y和N的值,这种情况,我只需要拿CHECK_RESULT = N那条记录该SQL应该怎么写。不能在WHERE中写CHECK_RESULT = N这个条件解法一:; with cte as(s

24、elect HDID,CHECK_RESULT,CHECK_ITEM_GROUP_ID,rownum=row_number()over(partition by CHECK_ITEM_GROUP_ID order by cast( CHECK_ITEM_GROUP_ID as int)from (SELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , Y AS CHECK_RESULT, 1 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS H

25、DID , N AS CHECK_RESULT, 1 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , Y AS CHECK_RESULT, 2 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B90B8 AS HDID , Y AS CHECK_RESULT, 3 CHECK_ITEM_GROUP_IDUNION ALLSELECT E598695C-2478-4DBB-8C8F-0663315B

26、90B8 AS HDID , Y AS CHECK_RESULT, 4 CHECK_ITEM_GROUP_ID)t)select HDID,CHECK_RESULT,CHECK_ITEM_GROUP_ID from cte where rownum= case when cast(CHECK_ITEM_GROUP_ID as int)=1 then 2else 1endHDID CHECK_RESULT CHECK_ITEM_GROUP_ID- - -E598695C-2478-4DBB-8C8F-0663315B90B8 N 1E598695C-2478-4DBB-8C8F-0663315B

27、90B8 Y 2E598695C-2478-4DBB-8C8F-0663315B90B8 Y 3E598695C-2478-4DBB-8C8F-0663315B90B8 Y 4(4 行受影响)*/*第九题:表结构为 ID BID ISMust Result1 0 true OK2 1 true NO3 1,2 true null4 2,3 true null以ID 为4 的记录为例,需要查询出ID 为2,3的Result BID 的数据类型为nvarchar使用关键字In 无法进行查询!在sql 中该如何查询!使用sql 语句,不是C#的代码? 解法一:create table tb2(ID

28、int,BID varchar(20),ISMust varchar(10),Result varchar(10)insert into tb2 select 1,0,true,OKinsert into tb2 select 2,1,true,NOinsert into tb2 select 3,1,2,true,nullinsert into tb2 select 4,2,3,true,nullgodeclare sql varchar(2000)select sql=select * from tb2 where ID in(+bID+) from tb2exec(sql)*/*第十题:请教各位: 数据记录是这样的 1 2 3 4 5 12 17 18 19 20 25 请问sqlserver2000如何显示成这样-5,-20,解法一:declare t table(num int)insert into t select 1 union all select

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1