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

admin2021-06-28  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://kaotiyun.com/show/qbeZ777K
0

最新回复(0)