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

admin2021-09-16  30

问题 在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
    DECLARE @ 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 所在部门
    RETUURN(@ x)
    END

答案A

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

相关试题推荐
最新回复(0)