2011-04-10 13 views
21

के साथ DISTINCT खंड जहां मैं DISTINCT क्लॉज का उपयोग कहां से कर सकता हूं? उदाहरण के लिए:WHERECT

SELECT * FROM table WHERE DISTINCT email; -- email is a column name 

मैं अलग-अलग ईमेल पते वाले तालिका से सभी कॉलम चुनना चाहता हूं।

+1

यह शर्तों में विरोधाभास है। क्या आपका मतलब है "सभी कॉलम चुनना जिनके ईमेल अद्वितीय हैं"? –

+0

@adam: - हाँ !! – Mohit

+0

ठीक है, आपके प्रश्न का उत्तर दिया। –

उत्तर

3

हो सकता है द्वारा:

SELECT DISTINCT email,id FROM table where id='2'; 
+0

@ मोहित: आप क्या कहना चाहते हैं? कृपया विस्तृत करें? –

+1

मैं अद्वितीय ईमेल वाले सभी पंक्तियों का चयन करना चाहता हूं और आईडी = '2' रखना चाहता हूं; – Mohit

+0

ईमेल और आईडी मेरी तालिका में दो कॉलम हैं – Mohit

21

आप सभी स्तंभों जिसका ईमेल अद्वितीय है मतलब हैं:

SELECT * FROM table WHERE email in 
    (SELECT email FROM table GROUP BY email HAVING COUNT(email)=1); 
+0

यह गलत है अगर मैं 'चयन * तालिका से लिखता हूं जहां ईमेल (तालिका से अलग ईमेल का चयन करें)'? – Ravi

+0

@jWeaver ... यहां तक ​​कि मैं शुरुआत में सोच रहा था कि आप क्या सोच रहे थे। लेकिन, क्वेरी निष्पादित करने का प्रयास किया। यह गलत है। – Vikram

+0

तो, सब-क्वेरी कैसे काम करता है? – Delfino

3
select t1.* 
from YourTable as t1 
    inner join 
    (select email 
    from YourTable 
    group by email 
    having count(email) = 1) as t2 
    on t1.email = t2.email 
0

आप ROW_NUMBER उपयोग कर सकते हैं()। आप कहां स्थितियों को निर्दिष्ट कर सकते हैं। (निम्न क्वेरी में जैसे Name LIKE'MyName%)

SELECT * 
FROM (SELECT ID, Name, Email, 
      ROW_NUMBER() OVER (PARTITION BY Email ORDER BY ID) AS RowNumber 
    FROM MyTable 
    WHERE Name LIKE 'MyName%') AS a 
WHERE a.RowNumber = 1 
0

एक साधारण क्वेरी यह करना होगा:

SELECT * 
FROM table 
GROUP BY email 
HAVING COUNT(*) = 1; 
+0

ओप ने एसक्यूएल के स्वाद को निर्दिष्ट नहीं किया है, लेकिन यह आदेश SQL सर्वर में नहीं चलाया जाएगा और MySQL में संदिग्ध परिणाम उत्पन्न करेगा। –

0

चाहेंगे यह काम नहीं:

SELECT email FROM table1 t1 
      where UNIQUE(SELECT * FROM table1 t2); 
+0

मुझे कई डीबीएमएस के बारे में पता नहीं है, जिन्होंने अद्वितीय भविष्य को लागू किया है। कौन सा एक आप प्रयोग कर रहें है? साथ ही, मुझे लगता है कि आपको प्रश्नों को पीछे की ओर मिल गया है: 'अनइली()' अनुमानित 'में' ईमेल चुनें 'को लपेटा नहीं जाना चाहिए? और मुझे लगता है कि आपको किसी प्रकार के शामिल होने वाले खंड की आवश्यकता है ('तालिका 1 टी 2 से कहां से t2.email = t1.email')। – JDB

-1

क्वेरी:

Select *, (Select distinct email) from Table1 
1

आपका उपयोग कर सकते हैंखंड।

SELECT * 
FROM tab_name 
GROUP BY email_id 
HAVING COUNT(*) = 1;