【问题标题】:Why is my "where" statement not working when it's being designated?为什么我的“where”语句在指定时不起作用?
【发布时间】:2022-01-20 04:40:12
【问题描述】:

我目前正在尝试编写执行以下操作的 SQL 语句;

销售部门现在使用缩写 SL 而不是 SA。更改职位描述中的缩写。选择销售部门除 Taylor 之外的所有员工。按总数排序。

这是我目前正在尝试运行的代码,有什么建议吗?

SELECT CONCAT("first_name","", "last_name")
FROM employees NOT "Taylor"
WHERE = "sl"
ORDER by verschil DESC

【问题讨论】:

  • 首先,请标记您正在使用的DBMS。第二:您的查询中的语句顺序很奇怪。您希望 FROM employees NOT "Taylor"WHERE = "sl" 之类的声明做什么。
  • ANSI SQL 使用双引号表示标识符,例如列名。单引号用于字符串文字。

标签: sql database


【解决方案1】:

您尚未说明您使用的是哪种 DMBS。但是你有一些明显的语法错误。

  1. 需要在WHERE子句中指定部门的列名如
SELECT ... FROM ... WHERE column_name = "sl" ORDER BY...;
  1. 我建议您还包括在 WHERE 子句中排除名为“Taylor”的人的逻辑。

【讨论】:

    【解决方案2】:

    首先,我假设您正在使用 postgresql,其次您正在尝试从员工表中获取来自销售部门的所有员工姓名(您需要将 column_name1 替换为 ' 所在列的实际名称SL' 值已插入,将 column_name2 替换为您希望结果排序依据的列的名称。

    select first_name, last_name 
    from employees
    where first_name<>'Taylor' and last_name<>'Taylor' and column_name1='SL'
    order by column_name2
    

    【讨论】:

      【解决方案3】:

      这应该可以解决您的问题:

      SELECT first_name," ",last_name
      FROM employees 
      WHERE = "sl" and NOT "Taylor"
      ORDER by verschil DESC
      

      【讨论】:

      • 在什么 DBMS 中像 WHERE = "sl" and NOT "Taylor" 这样的表达式应该可以工作?
      • 在 RDBMS 中还有一件事你提到了 SQL 问题
      • @Aleem 你能不能edit你的帖子专门解释一下为什么这应该解决问题的问题?
      • WHERE = "sl" and NOT "Taylor" 不是有效的标准 SQL 语法,所以我怀疑这是否适用于任何实现标准 SQL 语法的 RDBMS ...
      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 2011-07-16
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 2013-09-30
      相关资源
      最近更新 更多