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

admin2020-12-02  15

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

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

答案A

解析 GROuP BY子句的作用是将查询的结果按照指定的字段进行分组,而题目中要求建立查询,查找指定部门中员工的最高工资,可以仅使用条件查询完成该功能,并且不需要对“所在部门”字段进行分组操作,故可以排除C、D选项。SET语句主要作用是给变量赋值,且一个变量只有一个值。而一个部门可能存在一个或多个人的工资一样多且是最高的,那么B选项就不符合要求。故选择A选项。
转载请注明原文地址:https://jikaoti.com/ti/dt37FFFM
0

最新回复(0)