Convert Subquery Result to Array
I want my subquery results (multi rows) return as a singale row in my query. For example.
SELECT u.url, (SELECT c.categoryid FROM category c WHERE c.categoryid = u.categoryid) FROM url u
If url contains multiple categories, subquery will return multiple rows as following
P.S Subquery return multiple rows is not supported in most of the database but PostgreSQL
url | categoryid --------------------- 1 | 1 1 | 2 2 | 1
Result i wanted is as following
url | categoryid --------------------- 1 | 1,2 2 | 1
I’m not sure how easy it can achieve in others database like oracle or mysql, however PostgreSQL provided Array data type, using array it’s very easy to get what i want. I have to changed my query to
SELECT u.url, (SELECT array(SELECT c.categoryid FROM category c WHERE c.categoryid = u.categoryid))AS categoryid FROM url u
Result ~
url | categoryid --------------------- 1 | {1,2} 2 | 1
Done ~ PostgreSQL Array Rock ~
- Java Core Technology - Java RegEx, Java XML, Java I/O, Java Misc
- J2EE Frameworks - Hibernate, Spring 2.5, Spring MVC, Struts 1.x, Struts 2.x
- Build Tools - Maven, Archiva
- Unit Test - jUnit, TestNG
- Client Scripts - jQuery
Thanks a lot! I was wondering how to do this for one year!
Thanks to PostgreSQL ~
[...] – bookmarked by 4 members originally found by lavishcouture on 2008-10-26 Convert Subquery Result to Array http://www.mkyong.com/database/convert-subquery-result-to-array/ – bookmarked by 4 members [...]