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

कैसे 'कहां' खंड में कॉलम से बचने के लिए अगर पैरामीटर 'नहीं पास' है postgresql

यह बहुत स्पष्ट नहीं है कि पास से आपका क्या मतलब है , लेकिन शायद आपका मतलब यह है कि $3 $3 . के साथ एक वैकल्पिक पैरामीटर है अनुपस्थित अर्थ:परवाह नहीं ?

SELECT *
FROM employee
WHERE name = $1
AND age = $2
AND ( $3 IS NULL OR salary = $3)
   ;

कुछ डेटा:

CREATE TABLE employee
        ( name varchar NOT NULL PRIMARY KEY
        , age integer
        , salary integer
        );

INSERT INTO employee ( name , age , salary ) VALUES
 ( 'Alice' , 13 , 3 )
,( 'Bob' , 11 , 5 )
,( 'Charlotte' , 15 , 9 )
,( 'David' , 17 , 10 )
        ;

तैयार क्वेरी के समान:

PREPARE qry (text, integer , integer) AS
SELECT *
FROM employee
WHERE name = $1
AND age = $2
AND ( $3 IS NULL OR salary = $3)
   ;

    -- and call the prepared statement:
EXECUTE qry ('Alice', 13, 3);
EXECUTE qry ('Alice', 13, NULL);

आउटपुट:

CREATE TABLE
INSERT 0 4
PREPARE
 name  | age | salary 
-------+-----+--------
 Alice |  13 |      3
(1 row)

 name  | age | salary 
-------+-----+--------
 Alice |  13 |      3
(1 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. ClusterControl - उन्नत बैकअप प्रबंधन - PostgreSQL

  2. OmniDB के साथ PostgreSQL 12 के प्रदर्शन की निगरानी कैसे करें - भाग 1

  3. SQLite3 और रेल क्वेरी मुद्दों पर पोस्टग्रेज/हेरोकू रूबी

  4. एक बड़े Django QuerySet के माध्यम से बड़ी मात्रा में स्मृति का उपभोग क्यों कर रहा है?

  5. मैं हेरोकू पर स्ट्रैपी के साथ पोस्टग्रेस डीबी से कनेक्ट नहीं हो सकता