【问题标题】:Records/Text not in SQL 'IN' clause记录/文本不在 SQL 'IN' 子句中
【发布时间】:2018-05-11 02:58:29
【问题描述】:

什么是最好的返回一组(数组?)'IN'子句找不到的字符串。例如

假设 FRUIT 表仅包含“APPLE”、“PEACHES”、“KIWI”和“BANANA”。 下面的查询将返回 'APPLE' AND 'BANANA'

SELECT FRUIT_NAME 
FROM FRUIT 
WHERE FRUIT_NAME IN ('APPLE', 'BANANA', 'ORANGE', 'PEAR')

如何返回“ORANGE”和“PEAR”,即不在表格中但属于我的搜索条件的项目?

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 如果您想返回名称是否在表中,为什么还要查看表?例如。使用这个 PostgreSQL 的等价物:SELECT * FROM (VALUES ('APPLE'), ('BANANA'), ('ORANGE'), ('PEAR')) AS FRUIT (FRUIT_NAME)

标签: sql sybase


【解决方案1】:

一般的方法是left join

select t.*
from (select 'APPLE' as fruits union all
      select 'BANANA' union all
      select 'ORANGE' union all
      select 'PEAR') t left join FRUIT f
                     on t.fruits = f.fruits 
where t.fruits is null;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 2016-10-01
    • 1970-01-01
    • 2018-04-22
    • 2016-01-27
    • 1970-01-01
    • 2010-10-24
    • 2011-01-12
    相关资源
    最近更新 更多