【问题标题】:Oracle Express 11g commandOracle Express 11g 命令
【发布时间】:2015-06-18 21:09:55
【问题描述】:

我正在尝试使用 Oracle Express 11g 运行 SQL 命令,但它给了我一条错误消息:

没有选择行

SELECT EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_NAME
FROM EMPLOYEES JOIN DEPARTMENTS USING (DEPARTMENT_ID)
WHERE EMPLOYEE_ID < 103
AND EMPLOYEE_ID > 203;

【问题讨论】:

  • 这不是错误消息,这是您查询的结果 - 没有这样的员工。你认为这是错误的结果吗?如果是,请解释原因。
  • 顺便把你的代码标记为源代码。
  • 如何将代码标记为源代码。我是新手,我似乎无法弄清楚。对不起
  • 在标签栏中,您有一个类似 {} 的图标。标记您的代码并按下它。 :-)
  • 是的@Mureinik。当我试图只显示一张桌子时,它工作正常。有 10 名员工的 ID > 103。我想我在梳理 EMPLOYEES 和 DEPARTMENTS 两张表时遇到了问题。问题要求:所有员工标识号小于 103 或大于 203 的员工标识号、员工姓名和部门名称。

标签: sql oracle select oracle11g


【解决方案1】:

问题问:识别号小于 103 或大于 203 的所有员工的员工识别号、员工姓名和部门名称。

您的代码使用and 逻辑运算符而不是or 操作。由于数字(在本例中为 ID)不能同时小于 103 和大于 203,因此您将不会得到任何行。

只需将and 替换为or 就可以了:

SELECT EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_NAME
FROM   EMPLOYEES 
JOIN   DEPARTMENTS USING (DEPARTMENT_ID)
WHERE  EMPLOYEE_ID < 103 OR  EMPLOYEE_ID > 203;
-- Here -----------------^

【讨论】:

  • 谢谢@Mureinik。有效。我也理解你的解释。非常感谢。
猜你喜欢
  • 2019-03-11
  • 2021-10-06
  • 1970-01-01
  • 2011-12-20
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
相关资源
最近更新 更多