SQL - 考虑到 table 中的计数 (*),是否可以打印所有记录或仅打印一条记录?

SQL - Is it possible to print all records or only one record taking into account count(*) in a table?

我正在尝试寻找一种方法来打印结果,同时考虑 table 中是否存在记录。 如果是,我应该打印 table 中的所有记录,否则我应该只打印一条记录。

示例:

我有 Table 示例:

ColA Colb ColC

如果示例中的 select count(*) > 0 THEN Return

ColA Colb ColC
1 VA1 NULL
2 VB1 NULL
3 NULL VA2

如果示例中的 select count(*) <= 0 THEN Return

ColA Colb ColC
Result NA NA

是否可以这样做?我正在使用 PRESTO 进行开发。

提前致谢

我们可以通过联合引入一个 dummy/default 行,然后仅在 Example table 为空的情况下保留它:

 WITH cte AS (
    SELECT ColA, ColB, ColC, 0 AS pos FROM Example
    UNION ALL
    SELECT 'Result', 'NA, 'NA', 1
)

SELECT ColA, ColB, ColC
FROM cte
WHERE pos = 0 OR NOT EXISTS (SELECT 1 FROM cte WHERE pos = 0);

尝试:

SELECT ColA,ColB,ColC
FROM Example
union
SELECT 
   'Result' as ColA,
   'NA' as ColB,
   'NA' as ColC
WHERE NOT EXISTS (SELECT ColA,ColB,ColC
                  FROM Example)

不需要 select sub-query 中的 3 列,但目前我 copy/pasted 查询。可以用 SELECT 1SELECT NULL 代替(这是个人喜好问题...)