我的查询如下:
SELECT R.*
FROM
(
WITH TABLE_X AS
(
SELECT A,B,C FROM Y
)
--PSEUDO CODE
IF (COUNT(TABLE_X.*) > 0)
THEN SELECT CONCAT(A ,B, C) FROM TABLE_X
ELSE 'No Data'
END
) R
在这种情况下,如果TABLE_X有数据,则选择将返回A,B,C。在其他方面,这将返回其他类似“无数据”的内容。
请帮我澄清并提出一些解决方案。 谢谢你的关注。
答案 0 :(得分:0)
如果TABLE_X
中最多有一行,则可以使用聚合:
WITH TABLE_X AS (
SELECT A, B, C FROM Y
)
SELECT (CASE WHEN COUNT(*) = 0 THEN 'No Data'
ELSE MAX(A || B || C)
END) as col
FROM TABLE_X;
或者,使用UNION ALL
:
WITH TABLE_X AS (
SELECT A, B, C FROM Y
)
SELECT A || B || C as col
FROM TABLE_X
UNION ALL
SELECT 'No Data'
FROM Dual
WHERE NOT EXISTS (SELECT 1 FROM TABLE_X);
答案 1 :(得分:0)
你也在查询我认为你只需要
select nvl( A||B,||C , 'No data')
from y