PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQL क्वेरी:किसी तालिका से आदेशित पंक्तियाँ प्राप्त करें

पुनरावर्ती क्वेरी का उपयोग करें (PostgreSQL संस्करण 8.4 या बाद का संस्करण):

/* test data:
CREATE TABLE foo (id, r_id, a_id, p_id) AS
    SELECT  1,9,9,0
    UNION ALL SELECT 2,9,105,108
    UNION ALL SELECT 3,9,102,9
    UNION ALL SELECT 4,9,106,105
    UNION ALL SELECT 5,9,108,102        
;
*/

-- the query you need:
WITH RECURSIVE sub(s_id, s_r_id, s_a_id, s_p_id, row) AS (
    SELECT id, r_id, a_id, p_id, 1 AS row FROM foo WHERE p_id = 0
UNION ALL
    SELECT id, r_id, a_id, p_id, (row + 1)  FROM foo JOIN sub ON s_a_id = p_id
)
SELECT * FROM sub ORDER BY row;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में सभी उपयोगकर्ताओं को कैसे सूचीबद्ध करें

  2. PSQLException:यह परिणामसेट बंद है

  3. पोस्टग्रेज में pg_trgm . के साथ समानता कार्य

  4. वे बड़ी वस्तुओं को रफ़ करते हैं

  5. एचएबीटीएम जॉइन टेबल पर दो इंडेक्स चाहिए?