0

pgsql選択クエリでコンマをアポストロフィ/一重引用符に置き換えるにはどうすればよいですか? 私の現在のクエリは次のとおりです。

SELECT array_to_string(array_agg(districtname), ', ') as dnames
FROM districts
where id in ('' || Replace((select districtIds from tblmtr where id = 1), ',' , ''',''') || '');

nullを返しています。
テーブル内の IDは次のtblmtrようになります2, 3,4

2only or 3orに変更すると4、正しい結果が返されます。
結果は次のようになります。district1name,district2name,district3name

4

1 に答える 1

1

ここでは、いくつかのことが理想的ではありません。

不幸な設計に固執している間は、コンマ区切りの文字列をその場で配列に変換し、ANY構文を使用してください。
テーブル定義を提供することを怠ったため、いくつかの仮定を行います。

SELECT array_to_string(array_agg(d.districtname), ', ') AS dnames
FROM   tblmtr    t 
JOIN   districts d ON d.id = ANY (string_to_array(t.districtIds, ','))
WHERE  t.id = 1;

または:

SELECT ARRAY (
   SELECT d.districtname
   FROM   tblmtr    t 
   JOIN   districts d ON d.id = ANY (string_to_array(t.districtIds, ','))
   WHERE  t.id = 1
   ) AS dnames;
于 2016-03-06T02:34:38.277 に答える