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

किसी फ़ंक्शन से कोई क्वेरी लौटाएं?

CREATE OR REPLACE FUNCTION get_names(_tname varchar)
  RETURNS TABLE (col_a integer, col_b text) AS
$func$
BEGIN
   RETURN QUERY
   SELECT t.col_a, t.col_b  -- must match RETURNS TABLE
   FROM   mytable t
   WHERE  t.name = _tname;    
END
$func$  LANGUAGE plpgsql;

इस तरह कॉल करें:

SELECT * FROM get_names('name')

प्रमुख बिंदु:

  • RETURNS TABLE का उपयोग करें , इसलिए आपको प्रत्येक कॉल के साथ कॉलम नामों की सूची प्रदान करने की आवश्यकता नहीं है।

  • RETURN QUERY का उपयोग करें , बहुत आसान।

  • समान नाम वाले OUT . के साथ नामकरण के विरोध से बचने के लिए तालिका-योग्य स्तंभ नाम पैरामीटर (RETURNS TABLE के साथ घोषित कॉलम सहित) )।

  • ALIAS . के बजाय नामित चर का प्रयोग करें . सरल, वही करना, और यह पसंदीदा तरीका है।

  • इस तरह का एक साधारण फंक्शन LANGUAGE sql . में भी लिखा जा सकता है :

CREATE OR REPLACE FUNCTION get_names(_tname varchar)
  RETURNS TABLE (col_a integer, col_b text) AS
$func$
SELECT t.col_a, t.col_b  --, more columns - must match RETURNS above
FROM   mytable t
WHERE  t.name = $1;
$func$ LANGUAGE sql;



  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. PostgreSQL में एक महीने में दिनों की संख्या प्राप्त करें

  3. PostgreSQL में उच्चारण हटाने का कार्य

  4. ClusterControl CLI से अपने PostgreSQL डेटाबेस को कैसे प्रबंधित करें?

  5. Django ORM में क्वेरी द्वारा समूहीकृत पर एक एनोटेट फ़ील्ड के अधिकतम योग की गणना करें?