使用逗号分隔符从数字列中选择不同的值

时间:2014-12-12 05:51:36

标签: postgresql

我在postgresql表中有这样的值

account_id
integer
----------
749
749
749
749
532

我想将它们选为(749,532)

----------
Detail of Question

在WHERE子句中,我想显示一些像这样的id

WHERE account_id in(749,532)

来自具有重复值的列;

ACCOUNT_ID(柱)

749 749 749 749 532 532

或者可能是其他一些值。我只想在上面提到的WHERE子句中用逗号分隔选择每个值一次

我写了以下查询,但它没有提供所需的结果

WHERE account_id in(SELECT array_agg(DISTINCT(vc.account_id)ORDER BY vc.account_id)FROM adempiere.c_validcombination vc LEFT JOIN adempiere.c_bp_vendor_acct bva ON vc.c_validcombination_id = bva.v_liability_acct WHERE bva.ad_client_id = 11)

它会返回像{749,532}这样的值,但我需要它们为(749,532)

谢谢

2 个答案:

答案 0 :(得分:1)

检查string_agg()

SELECT
  string_agg(DISTINCT account_id::text, ', ') AS result
FROM 
  table_name;

答案 1 :(得分:0)

SELECT account_id FROM table GROUP BY account_id