【问题标题】:Query with more than one condition多于一个条件的查询
【发布时间】:2016-04-20 18:28:08
【问题描述】:

我想显示我的employees 表中的薪水,其中薪水必须在 6100 和 6400 之间,first_name 就像一个百分比。

我写了这个查询:

select salary from employees where salary in (6100,6400) and first_name like 'a%';

但它显示没有选择行。我应该如何更改查询以查找同时符合这两个条件的行?

【问题讨论】:

  • 当使用“介于”这个词时,您需要仔细了解您是否希望它具有包容性,就像 Oracle 的 between 一样;你想包括工资恰好 6100 或 6400 或大于或等于 6100 且小于 6400 的行吗? (由于您现在从查询中获得行,因此您没有任何与这些值完全相同的行,并且名字也以小写“a”开头,但这是一般考虑,您可能有一些拳头名称以大写“A”)。

标签: sql oracle


【解决方案1】:

使用BETWEEN 代替IN

SELECT salary 
FROM employees 
WHERE salary BETWEEN 6100 AND 6400
  AND first_name LIKE 'a%';

【讨论】:

    【解决方案2】:

    这样使用 BETWEEN

    select salary 
    from employees 
    where salary BETWEEN 6100 AND 6400 
    and first_name like 'a%';
    

    【讨论】:

      【解决方案3】:

      因为您使用的是IN 语句而不是BETWEEN 语句,所以当前查询返回的数据将只包含工资等于61006400 和以小写字母“a”开头的名字。

      请尝试以下方法:

      SELECT SALARY
      FROM EMPLOYEES
      WHERE SALARY BETWEEN 6100 AND 6400
      AND FIRST_NAME LIKE 'a%';
      

      【讨论】:

        猜你喜欢
        • 2014-08-04
        • 1970-01-01
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        • 2017-02-18
        • 2012-12-01
        • 2013-10-03
        • 1970-01-01
        相关资源
        最近更新 更多