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

postgreSQL फाइबोनैचि अनुक्रम - क्वेरी का परिणाम डेटा के लिए कोई गंतव्य नहीं है

आप पास में हैं। मूल रूप से आपका SELECT कहीं नहीं जा रहा है और आपका फ़ंक्शन हेडर कहता है कि इसे एक INT वापस करना चाहिए मूल्य। चूंकि यह एक शुद्ध SQL है CTE . का उपयोग करके क्वेरी , PLPGSQL का उपयोग करने की कोई आवश्यकता नहीं है , इसलिए मैंने भाषा के प्रकार को भी SQL . में बदल दिया है

CREATE OR REPLACE FUNCTION fibonacci (lastN INTEGER) 
RETURNS SETOF INTEGER LANGUAGE SQL AS $$
WITH RECURSIVE t(a, b) AS (
    VALUES(0,1)
    UNION ALL
        SELECT GREATEST(a, b), a + b AS a from t
        WHERE b < $1
)
SELECT a FROM t;
$$;

SELECT fibonacci(20);

संपादित करें: जैसा अनुरोध किया गया है, वही फ़ंक्शन भाषा PLPGSQL का उपयोग कर रहा है

CREATE OR REPLACE FUNCTION fibonacci (lastN INTEGER) 
RETURNS SETOF INT LANGUAGE PLPGSQL AS $$
BEGIN
RETURN QUERY WITH RECURSIVE t(a, b) AS (
    VALUES(0,1)
    UNION ALL
        SELECT GREATEST(a, b), a + b AS a from t
        WHERE b < $1
)
SELECT a FROM t;
END $$;

SELECT fibonacci(20);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jsonb फ़ील्ड पर अनुक्रमणिका जोड़ें

  2. PostgreSQL क्वेरी में एकाधिक फ़ंक्शन कॉल में हार्डकोडेड मान का पुन:उपयोग करें

  3. तैयार स्टेटमेंट बहुत धीमा है, लेकिन मैन्युअल क्वेरी त्वरित

  4. ZIpped फ़ाइल को Postgres तालिका में कैसे आयात करें

  5. pg_dump बनाम pg_dumpall? डेटाबेस बैकअप के लिए किसका उपयोग करना है?