2015-11-04 78 views
1

這應該很簡單。像在postgresql中將值提取到一個逗號分隔的字符串中

SELECT code_id FROM code WHERE status = 1 

查詢通常給出像

code_id 
10 
11 
12 

一個結果,但我的目標是讀取到字符串像

10,11,12 

爲了在其他查詢中使用它

SELECT x FROM table WHERE status in (10,12,13) 

最好在山姆e查詢。這可能使用「標準」Postgresql而不添加額外的擴展名?

到目前爲止所做的一切都是使用擴展,而不是標準的擴展。

在此先感謝。

回答

4

只是爲了方便向您展示這些數據。但是,您也可以使用subquery中的結果集,如下所示:

SELECT x FROM table WHERE status in (
    SELECT code_id FROM code WHERE status = 1 
) 
2

你可以試試這個方式來獲得結果爲逗號分隔

但我的目標是無論什麼工具,你正在使用,以讀取到字符串像

SELECT string_agg(code_id, ',') FROM code WHERE status = 1 
+0

此功能在標準AFAIK中不存在於9.1中。我收到一個錯誤。 – sibert

+0

@sibert:這已經被問過很多次了。其中之一是:http://stackoverflow.com/q/2560946/330315 –

+0

是的,我知道。但是我找不到使用標準擴展的答案。但** SELECT array_to_string(array(SELECT a FROM b),',')**確實有效。謝謝! – sibert

相關問題