title: How to sort the result from string_agg()
body: <p>I have a table:</p>
  
  <pre><code>CREATE TABLE tblproducts
  (
  productid integer,
  product character varying(20)
  )
  </code></pre>
  
  <p>With the rows:</p>
  
  <pre><code>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');
  </code></pre>
  
  <p>If I execute <code>string_agg()</code> on <code>tblproducts</code>:</p>
  
  <pre><code>SELECT string_agg(product, ' | ') FROM "tblproducts"
  </code></pre>
  
  <p>It will return the following result:</p>
  
  <pre><code>CANDID POWDER 50 GM | ESOZ D 20 MG CAP | HHDERM CREAM 10 GM | CREAM 15 GM | KZ LOTION 50 ML | BUDECORT 200 Rotocap
  </code></pre>
  
  <p>How can I sort the aggregated string, in the order I would get using <code>ORDER BY product</code>?</p>
  
  <p>I'm using PostgreSQL 9.2.4.</p>