oracle oracle查询嵌套选择用例
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10197520/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 00:44:09 来源:igfitidea点击:
oracle query nested select using case
提问by cjd143SD
I have (2) case statements:
我有(2)个案例陈述:
SELECT CASE WHEN EXISTS
( SELECT *
FROM MYTABLE_A
WHERE timestamp = to_char(sysdate-1, 'yyyymmdd') || '0000'
)
THEN 0
ELSE 1
END AS FLAG_MYTABLE_A
from DUAL;
SELECT CASE WHEN EXISTS
( SELECT *, timestamp
FROM MYTABLE_B
WHERE
timestamp = to_char(sysdate-1, 'yyyymmdd') || '0000'
) )
THEN 0
ELSE 1
END AS FLAG_MYTABLE_B
from DUAL;
RESULTS:
结果:
FLAG_MYTABLE_A
--------------
0
FLAG_MYTABLE_B
--------------
1
I need help constructing this query so I can get the following results displayed.
我需要帮助构建此查询,以便显示以下结果。
MYTABLENAME MYFLAG
----------- ------
MYTABLE_A 0
MYTABLE_B 1
Am I looking at a nested select? Can someone show me how to set this up?
我在看嵌套选择吗?有人可以告诉我如何设置吗?
回答by Lamak
You can use UNION ALL
:
您可以使用UNION ALL
:
SELECT 'MYTABLE_A' AS MYTABLENAME, CASE WHEN EXISTS
( SELECT *
FROM MYTABLE_A
WHERE timestamp = to_char(sysdate-1, 'yyyymmdd') || '0000'
)
THEN 0
ELSE 1
END AS FLAG_MYTABLE_A
from DUAL
UNION ALL
SELECT 'MYTABLE_B' AS MYTABLENAME, CASE WHEN EXISTS
( SELECT *, timestamp
FROM MYTABLE_B
WHERE
timestamp = to_char(sysdate-1, 'yyyymmdd') || '0000'
) )
THEN 0
ELSE 1
END AS FLAG_MYTABLE_B
from DUAL;
回答by Pavel Veller
You can do something like:
您可以执行以下操作:
SELECT "MYTABLE_A", CASE ... END AS "MYFLAG" FROM DUAL
UNION
SELECT "MYTABLE_B", CASE ... END AS "MYFLAG" FROM DUAL