SELECT CASE:用作表达式的子查询返回的多行

时间:2016-01-14 07:53:10

标签: postgresql postgresql-8.4

我的问题PostgreSQL: return message after count = 0

得到了很好的帮助

此查询正常工作:

SELECT  CASE WHEN COUNT(*)  = 0 THEN 'NO RESULT'
            ELSE CAST(COUNT(*) as TEXT)
        END as myfield from mytable

但是今天我需要表格中有些行,我需要显示选择结果。

我试过了:

SELECT  CASE WHEN COUNT(*)  = 0 THEN 'NO RESULT'
             ELSE (select name from mytable)
        END as myfield from mytable

我得到了错误:

  

错误:用作表达式

的子查询返回多行

我发现IN功能,但没有任何想法改进它。

1 个答案:

答案 0 :(得分:2)

我认为你可以这样做:

select name from mytable
UNION ALL
SELECT 'NO RESULT'
WHERE NOT EXISTS(SELECT NULL FROM mytable)