20.在SQL语句中每种语法都有其位置规范,放错位置是会导致错误的,SQL中子查询可以出现在以下( )子句中。
A.group by
B.order by
C.having
D.limit
一级教材答案与解析:
答案:C。解析:子查询可以出现在select、where、having、from、join子句中,所以选C。
备注:
有小伙伴说order by子句也可以出现子查询,我查了一下 确实可以
对于考试, 先按照考题解析的答案来记忆,实际工作遇到特殊问题,自己再具体问题具体处理
#关于ORDER BY子句可以使用子查询作为排序条件
#建表语句:
CREATE TABLE employees (
员工编号 INT,
姓名 VARCHAR(50),
性别 VARCHAR(10),
工作时间 INT
);
CREATE TABLE salary (
员工编号 INT,
收入 INT,
支出 INT
);
#插入示例数据语句:
INSERT INTO employees (员工编号, 姓名, 性别, 工作时间)
VALUES
(1, '张三', '男', 2),
(2, '李四', '女', 3),
(3, '王五', '男', 5);
INSERT INTO salary (员工编号, 收入, 支出)
VALUES
(1, 5000, 2000),
(2, 6000, 2500),
(3, 7000, 3000);
#查询语句:
SELECT 姓名,员工编号, 性别, 工作时间
FROM employees
ORDER BY (SELECT 收入-支出
FROM salary
WHERE salary.员工编号=employees.员工编号) DESC;
#牵涉两个表时可以执行出来
SELECT 姓名,员工编号, 性别, 工作时间,收入-支出
FROM employees
ORDER BY (SELECT 收入-支出
FROM salary
WHERE salary.员工编号=employees.员工编号) DESC;
#单个表时会报错
SELECT 员工编号,收入-支出
FROM salary
ORDER BY (SELECT 收入-支出
FROM salary
)DESC ;
暂无数据