2016-01-14 31 views
1

我得到了很好的帮助我的问题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 

而且我得到了错误:

ERROR: more than one row returned by a subquery used as an expression

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

回答

2

我认为你可以做这样的事情:

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

谢谢。非常好。有用。 – mulrus