首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自不带连接的多个表的SQL

问来自不带连接的多个表的SQL
EN

Stack Overflow用户
提问于 2017-05-14 09:31:00
回答 2查看 3.1K关注 0票数 0

我在oracle中有三个表,其中包含今天、昨天和前天的数据,并且有一个名为'date‘的列。我需要找到包含昨天基于'date‘列的数据的表的表名。由于不需要连接,如何在没有连接的情况下进行查询

EN

回答 2

Stack Overflow用户

发布于 2017-05-14 11:39:11

您可以将这些表合并在一起。

例如(假设所有日期字段包含12 PM):

代码语言:javascript
复制
SELECT tablename
FROM (
    SELECT 'TABLE1' tablename, datefield
    FROM TABLE1
    UNION ALL
    SELECT 'TABLE2' tablename, datefield
    FROM TABLE2
    UNION ALL
    SELECT 'TABLE3' tablename, datefield
    FROM TABLE3)
WHERE datefield = TRUNC(SYSDATE - 1);

如果不是所有的日期字段都是下午12点,则调整为在特定时间使用BETWEEN。

对于非常大的表,将WHERE语句移到每个表UNION中。

票数 2
EN

Stack Overflow用户

发布于 2017-05-14 12:55:24

如果您只想要表名称,并且您知道有一个:

代码语言:javascript
复制
select (case when exists (select 1 from table1 where datefield = trunc(sysdate - 1))
             then 'table1'
             when exists (select 1 from table2 where datefield = trunc(sysdate - 1))
             then 'table2'
             when exists (select 1 from table3 where datefield = trunc(sysdate - 1))
             then 'table3'
        end) as whichtable
from dual;

这将返回满足条件的第一个表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43959555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档