我是在scott账号下练习sql中遇到的这个问题,sql如下:
列出至少有一名员工的所有部门
SELECT
dname AS '部门名称',
loc AS '位置'
FROM
dept
WHERE
deptno IN ( SELECT DISTINCT DEPTNO FROM emp )
从该错误中可以大概之后是因为FROM关键字前面的地方出现了问题,那也就是说列字段语法出现了问题,产生该问题的原因大概有两种,第一,排查FROM关键字有没有,有些人会写成FORM。 第二,是因为Oracle中比较严格,不支持单引号的使用,Oracle中只支持双引号或者不带引号,而在MySQL中全部支持。正确写法如下:
带双引号
SELECT
dname AS "部门名称",
loc AS "位置"
FROM
dept
WHERE
deptno IN ( SELECT DISTINCT DEPTNO FROM emp )
不带引号
SELECT
dname AS 部门名称,
loc AS 位置
FROM
dept
WHERE
deptno IN ( SELECT DISTINCT DEPTNO FROM emp )
使用哪种写法就看各位的习惯了,希望能帮助到大家!