当前位置: 首页 > 面试题库 >

Oracle SQL:从IN子句检索不存在的值

赵健柏
2023-03-14
问题内容

有以下查询:

select table_name
from user_tables
where table_name in ('A','B','C','D','E','F');

假设仅存在user_tables记录B,C和F,我想检索不存在的值A,D和E。这是一个简单的示例,在现实世界中,列表可能很大。


问题答案:

生成伪造行的一种好方法是使用标准集合,例如sys.odcivarchar2list

select
    tables_to_check.table_name,
    case when user_tables.table_name is null then 'No' else 'Yes'end table_exists
from
(
    select column_value table_name
    from table(sys.odcivarchar2list('does not exist', 'TEST1'))
) tables_to_check
left join user_tables
    on tables_to_check.table_name = user_tables.table_name
order by tables_to_check.table_name;


TABLE_NAME       TABLE_EXISTS
----------       ------------
TEST1            Yes
does not exist   No


 类似资料:
  • 问题内容: 我有一个由PHP脚本生成的MySQL查询,该查询将如下所示: RHD_No列是此数据库的主键,总共约有40万行。问题是,查询速度非常慢,通常需要2秒钟左右,但我发现查询的时间长达10秒钟。 当我尝试解释查询时,一切似乎都应该没问题: 当我配置查询时,我得到: 我已经在这个问题上研究了很长时间了,但一直没有找到解决方案。这个查询有什么明显的错误吗?我看不到查看420行应该花2秒钟以上的时

  • 主要内容:Oracle IN操作符介绍,Oracle IN运算符示例,以下是纠正/补充内容:在本教程中将学习如何使用Oracle 运算符来确定值是否与列表或子查询中的任何值相匹配。 Oracle IN操作符介绍 Oracle 运算符确定值是否匹配列表或子查询中的任何值。 注:子查询是嵌套在另一个查询中的查询,可通过在子查询教程中了解子查询用法。 确定表达式是否与值列表匹配的Oracle 运算符的语法如下所示: 并且表达式的语法与子查询匹配: 参数 在上面语法中,这里将介绍每个参数含义:

  • 问题内容: 我正在尝试在sqlalchemy中执行此查询 我想在执行时绑定列表。 问题答案: 怎么样 编辑 :没有ORM,它将是 需要两个参数,第一个是要检索的字段列表,第二个是条件。您可以通过(或)属性访问表对象上的所有字段。

  • 问题内容: 当我获得不同的记录计数时,出现了这个问题,我认为这是相同的查询,一个使用 约束,另一个使用a 。约束中的表具有一个空值(错误数据),该空值导致该查询返回计数为0的记录。我有点理解为什么,但是我可以使用一些帮助来完全理解这个概念。 简单地说,为什么查询A返回结果而B不返回结果? 这是在SQL Server 2005上。我还发现调用导致B返回结果。 问题答案: 查询A与以下内容相同: 既然

  • 问题内容: 今天,我发布了这样一个查询的答案 另一个用户已将答案发布到这样的查询中 如您所见,column_name和值的位置互换了。 从Mysql Docs expr IN(值,…) 如果expr等于IN列表中的任何值,则返回1;否则返回0。如果所有值都是常量,则根据expr的类型对它们进行求值并进行排序。然后使用二进制搜索完成对项目的搜索。这意味着如果IN值列表完全由常量组成,则IN非常快。

  • 我在CrudRepository中有下面的API 启动时低于错误: 由以下原因引起:ounter.java:91QuerySyntaException:意外令牌:第1行193列附近的订单[选择新的inal.jarVdororder(orderIorg.hibernate.hql.internal.ast.ItemId,mpl.parseId,mpl.java:288Time,inal.jarTim