2016-01-14 61 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