在SQL Server 2008中,设有职工表(职工号,姓名,所在部门,工资),现要建立查询指定部门平均工资的标量函数。下列语句中正确的是( )。

admin2015-07-24  21

问题 在SQL Server 2008中,设有职工表(职工号,姓名,所在部门,工资),现要建立查询指定部门平均工资的标量函数。下列语句中正确的是(       )。

选项 A、CREATE FUNCTION dbo.f_AvgSalary(@dept varchar(20))
RETURNS INT AS
BEGIN
RETURN(SELECT AVG(工资) FROM 职工表 WHERE 所在部门 = @dept)
END
B、CREATE FUNCTION dbo.f_AvgSalary(@dept varchar(20))
RETURNS INT AS
BEGIN
DECLARE @x INT
SET @x = SELECT AVG(工资) FROM 职工表 WHERE 所在部门 = @dept
RETURN (@x)
END
C、CREATE FUNCTION dbo.f_AvgSalary(@dept varchar(20))
RETURNS INT AS
BEGIN
RETURN(SELECT AVG(工资) FROM 职工表 WHERE 所在部门 = @dept
GROUP BY 所在部门)[k1]
END
D、CREATE FUNCTION dbo.f_AvgSalary(@dept varchar(20))
RETURNS INT AS
BEGIN
DECLARE @x INT
SET @x = SELECT AVG(工资) FROM 职工表 WHERE 所在部门 = @dept
GROUP BY 所在部门
RETURN (@x)
END

答案A

解析 GROUP BY子句的作用是将查询的结果按照指定的值进行分组,而题目要求查询指定部门的最高工资的,因此并不需要分组语句,可以排除C、D。SET语句主要作用是给变量赋值。一个变量只有一个值。而一个部门可能存在一个或多个人工资一样多且是最高的,所以选项B不正确。故选择A选项。
转载请注明原文地址:https://jikaoti.com/ti/Cr37FFFM
0

最新回复(0)