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

अद्वितीय जोड़ियों की सूची के आधार पर डेटाबेस से चयन करना

मुझे लगता है कि Postgresql का सबसे सुंदर समाधान है:

SELECT  *
FROM    T
WHERE   ("Key", "Value") IN (('B', 'Alpha'), ('A', 'Charlie'));

SQL Fiddle उदाहरण

SQL-SERVER 2008 और उसके बाद में आप VALUES . का उपयोग कर सकते हैं अपने टुपल्स बनाने के लिए:

SELECT  T.*
FROM    T
        INNER JOIN
        (   VALUES
                ('B', 'Alpha'),
                ('A', 'Charlie')
        ) v (Key, Value)
            ON v.Key = T.Key
            AND v.Value = T.Value

SQL Fiddle उदाहरण

या एक प्रक्रिया के लिए आप एक कुंजी-मूल्य जोड़ी प्रकार बना सकते हैं और इसे एक पैरामीटर के रूप में पास कर सकते हैं:

CREATE TYPE KeyValuePair AS TABLE ([Key] VARCHAR(1), [Value] VARCHAR(7));

DECLARE @T AS KeyValuePair
INSERT @T 
VALUES
    ('B', 'Alpha'),
    ('A', 'Charlie')


SELECT  T.*
FROM    T
        INNER JOIN @T v
            ON v.[Key] = T.[Key]
            AND v.Value = T.Value;

SQL Fiddle उदाहरण

MySQL के लिए मुझे लगता है कि आपको इसे AND/OR . का उपयोग करके बनाना होगा

SELECT  *
FROM    T
WHERE   (`Key` = 'A' AND `Value` = 'Charlie')
OR      (`Key` = 'B' AND `Value` = 'Alpha')

SQL Fiddle पर उदाहरण

अन्य डीबीएमएस के बारे में मेरा ज्ञान सीमित है, इसलिए यदि यह उपरोक्त में से एक नहीं है तो क्षमा करें, मैं और अधिक सहायता नहीं कर सकता।

संपादित करें (a_horse_with_no_name की सहायता से )

PostgreSQL सिंटैक्स Oracle के लिए भी काम करता है (और मुझे लगता है कि DB2)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hadoop पर स्कूप:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted ()

  2. क्या अस्थायी फ़ंक्शन जैसी कोई चीज़ है?

  3. Amazon Aurora PostgreSQL OUTFILE S3 में चयन करें

  4. PostgreSQL में एकाधिक कॉलम से मासिक योग दिखा रहा है

  5. तालिका पर ट्रिगर जोड़े जाने पर PSQLException और लॉक समस्या