问题 单项选择题

(31)到(35)题使用如下数据表。

部门(部门号C(2)、部门名称C(10) )

职工(部门号C(2)、职工号C(4)、姓名C(8)、基本工资N(7,2) )

检索有职工的基本工资大于或等于“11”部门中任意一名职工工资的“部门号”,正确的语句是()。

A. SELECT DISTmCT部门号FROM职工WHERE基本工资>=ANY;

(SELECT基本工资FROM职工WHERE部门号="11")

B. SELECT DISTINC部门号FROM职工WHERE基本工资>=ALL;

(SELECT基本工资FROM职工WHERE部门号="11")

C. SELECT DISTINCT部门号FROM职工WHERE基本工资>=ANY;

(SELECT MAX(基本工资)FROM职工WHERE部门号="11")

D. SELECT DISTINCT部门号FROM职工WHERE基本工资>=ALL;

(SELECT MIN(基本工资)FROM职工WHERE部门号="11")

答案

参考答案:B

解析:

在SQL语句中可以利用ANY、ALL等量词进行查询。基本格式为:

<表达式><比较运算符>[ANY|ALL|SOME](子查询)

其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立:而ALL(所有的)只有子查询中的所有行都符合条件,结果才成立。

本题中要求检索有职工的基本工资大于或等于“11”部门中任意一名职工的工资的部门号,等价于其他部门职工的基本工资有大于或等于“11”部门中所有职工的工资,因此要使用ALL短语。选项C)和D)的属于语法错误,SQL不支持此类型查询。

单项选择题 案例分析题
填空题