मुझे लगता है कि Postgresql का सबसे सुंदर समाधान है:
SELECT *
FROM T
WHERE ("Key", "Value") IN (('B', 'Alpha'), ('A', 'Charlie'));
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
या एक प्रक्रिया के लिए आप एक कुंजी-मूल्य जोड़ी प्रकार बना सकते हैं और इसे एक पैरामीटर के रूप में पास कर सकते हैं:
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;
MySQL के लिए मुझे लगता है कि आपको इसे AND/OR
. का उपयोग करके बनाना होगा
SELECT *
FROM T
WHERE (`Key` = 'A' AND `Value` = 'Charlie')
OR (`Key` = 'B' AND `Value` = 'Alpha')
अन्य डीबीएमएस के बारे में मेरा ज्ञान सीमित है, इसलिए यदि यह उपरोक्त में से एक नहीं है तो क्षमा करें, मैं और अधिक सहायता नहीं कर सकता।
संपादित करें (a_horse_with_no_name की सहायता से )
PostgreSQL सिंटैक्स Oracle के लिए भी काम करता है (और मुझे लगता है कि DB2)