SQL实战——04. 查找所有已经分配部门的员工的last_name和first_name以及dept_no (一个逗号引发的血案)

查找所有已经分配部门的员工的last_name和first_name以及dept_no
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));

错误的SQL代码:

SELECT e.last_name,e.first_name,d.dept_no
FROM employees e,dept_emp d
where e.emp_no=d.emp_no;

报错:

不通过
您的代码已保存
请检查是否存在语法错误或者数组越界非法访问等情况点击对比用例标准输出与你的输出
case通过率为0.00%

正确的SQL代码,答案:

SELECT e.last_name,e.first_name,d.dept_no
FROM employees e, dept_emp d
where e.emp_no=d.emp_no;

你能发现两段SQL脚本的区别吗?

这是一个逗号引发的血案,第二行 中间的逗号,错误的SQL中使用了中文全角的“,”,正确的SQL中使用的是英文半角的","

SQL脚本中一定要避免使用中文全角的符号,很难被发现,很难排查错误,否则,将不能通过测试用例。

原文地址:https://www.cnblogs.com/sinodragon21/p/12674014.html