1. ホーム
  2. sql

[解決済み] string_agg()の結果をソートする方法

2022-05-24 07:47:04

質問

テーブルがあります。

CREATE TABLE tblproducts
(
productid integer,
product character varying(20)
)

行と一緒に

INSERT INTO tblproducts(productid, product) VALUES (1, 'CANDID POWDER 50 GM');
INSERT INTO tblproducts(productid, product) VALUES (2, 'SINAREST P SYP 100 ML');
INSERT INTO tblproducts(productid, product) VALUES (3, 'ESOZ D 20 MG CAP');
INSERT INTO tblproducts(productid, product) VALUES (4, 'HHDERM CREAM 10 GM');
INSERT INTO tblproducts(productid, product) VALUES (5, 'CREAM 15 GM');
INSERT INTO tblproducts(productid, product) VALUES (6, 'KZ LOTION 50 ML');
INSERT INTO tblproducts(productid, product) VALUES (7, 'BUDECORT 200 Rotocap');

もし私が string_agg() を実行すると tblproducts :

SELECT string_agg(product, ' | ') FROM "tblproducts"

以下のような結果が返ってきます。

CANDID POWDER 50 GM | ESOZ D 20 MG CAP | HHDERM CREAM 10 GM | CREAM 15 GM | KZ LOTION 50 ML | BUDECORT 200 Rotocap

集計された文字列をどのようにソートすればよいのでしょうか。 ORDER BY product ?

PostgreSQL 9.2.4を使っています。

どのように解決するのですか?

postgres 9.0+では、書くことができます。

select string_agg(product,' | ' order by product) from "tblproducts"

詳細はこちら .