NIIT SQL测试题解析与解答

5星 · 超过95%的资源 需积分: 44 68 下载量 152 浏览量 更新于2024-11-17 收藏 99KB DOC 举报
"这是一份来自NIIT的SQL测试题,包含了有关SQL查询和存储过程的问题,适合初学者或在学习SQL的人进行练习。题目主要关注如何筛选满足特定条件的数据以及如何正确创建和使用存储过程。" 在SQL查询方面,题目考察了如何找出预付款高于商业类书籍平均预付款的书名。正确答案是第二个选项: ```sql SELECT title FROM titles WHERE advance > (SELECT AVG(advance) FROM titles WHERE type = 'business') ``` 这个查询首先计算出商业类书籍(type='business')的平均预付款,然后从所有书籍中选取那些预付款超过这个平均值的书名。 接下来,题目涉及的是在SQL Server中创建存储过程。题目描述了一个名为`prcGetPos`的过程,用于获取特定职位代码(Pcode)的职位描述和职位要求。初始的创建语句存在错误,因为它没有正确地定义参数为输出参数,导致过程无法返回值。正确的语法应该是: ```sql CREATE PROCEDURE prcGetPos @Pcd char(4) OUTPUT, @Description char(20) OUTPUT, @RD int OUTPUT AS BEGIN -- 这里是实现过程的代码,例如查询数据库并填充输出参数 END ``` 这里,`@Pcd`, `@Description`, 和 `@RD` 参数都声明为`OUTPUT`,这样当过程被调用时,它们可以用来接收过程内部计算的结果。 这些题目覆盖了SQL的基础知识,包括子查询用于比较特定条件的数据,以及存储过程的创建和参数的使用。这些技能对于数据库管理和应用程序开发至关重要。通过解答这些题目,学习者可以检验自己的SQL理解程度,并进一步提高其在实际项目中的应用能力。