在SQL Server 2008中,设有如下定义的内联表值函数: CREATE FUNCTION dbo.f_StuInfo(@dept varchar(20)) RETURNS TABLE AS RETURN(SELECT S.Dept AS

admin2021-06-28  25

问题 在SQL Server 2008中,设有如下定义的内联表值函数:
  CREATE FUNCTION dbo.f_StuInfo(@dept varchar(20))
  RETURNS TABLE AS
  RETURN(SELECT S.Dept AS系名,COUNT(*)AS人数,AVG(SC.Grade)AS平均成绩
  FROM Student S JOIN SC ON S.Sno=SC.Sno
  WHERE S.Dept=@dept GROUP BYS.Dept)
  有下列利用该函数的查询语句:
  Ⅰ.SELECT*FROM dbo.f_StuInfo(’CS’)
  Ⅱ.SELECT Dept,COUNT(*),AVG(SC.Grade)FROM dbo.f_StuInfo(’CS’)
  Ⅲ.SELECT人数,平均成绩FROM dbo.f_StuInfo(’CS’)
  Ⅳ.SELECT*FROM dbo.f_StuInfo(’CS’)WHERE人数>=50
  上述语句中能正确执行的是(    )。

选项 A、仅Ⅰ和Ⅱ
B、仅Ⅰ和Ⅲ
C、仅Ⅰ和Ⅳ
D、仅Ⅰ、Ⅲ和Ⅳ

答案D

解析 Ⅱ中Dept前缺少表名,正确格式是s.Dept,Ⅱ错误,Ⅰ、Ⅲ和Ⅳ均正确。故答案为D项。
转载请注明原文地址:https://kaotiyun.com/show/lbeZ777K
0

最新回复(0)