- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
T-SQL综合练习
返回 用户自定义函数 在SQL Server 2005中用户自定义函数作为一个数据库对象来管理,可以在Management Studio查询窗口中利用T-SQL命令来创建(CREATE FUNCTION),修改(ALTER FUNCTION)和删除(DROP FUNCTION)它。举例如下: -- 定义 CREATE FUNCTION dbo.DaysBetweenDates(@D1 datetime,@D2 datetime) RETURNS INT AS BEGIN RETURN (SELECT cast((@d2-@d1) as int)) END -- 使用 select dbo.DaysBetweenDates(getdate(),cast(2006-01-28 as datetime)) 15、定义一个用户标量函数,用以实现判断并返回三个数中的最大数。 解: CREATE FUNCTION [dbo].[MAXNUM] (@NUM1 INT,@NUM2 INT,@NUM3 INT) RETURNS INT AS BEGIN DECLARE @I INT SET @I=@NUM1 IF (@I@NUM2) SET @I=@NUM2 IF (@I@NUM3) SET @I=@NUM3 RETURN @I END -- 使用举例 SELECT DBO.MAXNUM(123,434,543) 16、定义一个用户标量函数,用以实现判断并返回一个日期时间数据位于该年的第几天。 解: CREATE FUNCTION [dbo].[dayofthisyear] (@date datetime) RETURNS INT AS BEGIN DECLARE @year INT,@day INT,@d1 DATETIME SET @year=year(@date) SET @d1=cast((cast(@year as varchar(4))+-1-1) AS datetime) SET @day=0 WHILE (@d1=@date) BEGIN SET @day=@day+1 SET @d1=@d1+1 END RETURN @day END 存储过程和触发器编程 例题,设有订货数据库模式如下: (1) 产品表Product(产品号p_id,产品名称p_name,成本单价price, 库存数量quantity) (2) 订货商Customer(订货商号c_id,订货商名称c_name,所在城市city, 联系人person,联系电话c_telephone) (3)订货表Order(订单号o_id,订货商号c_id,产品号p_id,订货单价o_price, 订货数量o_quantity,订货日期o_date) 1.设计一个名为GetCustomerSum存储过程,实现按订货商名称统计某年份该订货商订货总金额和盈利总金额的功能,输入参数是订货商名称和订货年份,输出参数是订货总金额和盈利总金额。其中,求年份的函数为year( ),返回类型为int。 CREATE PROCEDURE GetCustomerSum @l_cname varchar(30), @l_oyear int, @l_orderSum numeric(10,2) OUTPUT, @l_gainSum numeric(10,2) OUTPUT AS BEGIN SELECT @l_orderSum = SUM(o_price * o_quantity), @l_gainSum = SUM((o_price - price) * o_quantity) FROM Order O JOIN Customer C ON (O.c_id=C.c_id) Join Product P ON (O.p_id=P.p_id) WHERE C.c_name = @l_cname AND year(O.o_date) = @l_oyear; END 2.编写一段T-SQL程序,调用该存储过程,统计并输出订货商名称为大连海运公司在2010年的订货总金额和盈利总金额。 DECLARE @Lcname varchar(30), @Loyear int, @LorderSum numeric(10,2), @LgainSum numeri
您可能关注的文档
最近下载
- 实施指南(2025)《CBT 3641-1994 船用锅炉本体修理验收技术要求》.pptx VIP
- 小学科学苏教版五年级上册全册知识点整理(共21课)(2021新版) .pdf VIP
- 2025新外研社版七年级上英语单词默写单(开学版).docx
- 小学一年级家长会语文老师发言稿.docx VIP
- 实施指南(2025)《CBT 3580-1994 船体钢板和构件修理测厚技术要求》.pptx VIP
- 火灾自动报警系统存在的几个问题及改进措施.pdf VIP
- 2025年沪教版四年级英语上册期中考试试卷及答案.docx VIP
- 实施指南(2025)《CBT 3637-1994 船用锅炉本体管件修理技术要求》.pptx VIP
- 实施指南(2025)《CBT 3538-1994 船用柴油机十字头修理技术要求》.pptx VIP
- 实施指南(2025)《CBT 3544-1994 船用柴油机曲轴修理技术要求》.pptx VIP
原创力文档


文档评论(0)