2012-06-28 7 views
5

मैं एक ही तालिका में दो कॉलम की तुलना करना चाहता हूं। मैं उन सभी पंक्तियों को वापस करने में सक्षम होना चाहता हूं जहां दो स्तंभों का एक ही मूल्य है।मैं एक ही तालिका में दो कॉलम की तुलना कैसे करूं?

मैं SELECT * FROM FOO WHERE C1 = C4 जैसे कुछ ढूंढ रहा हूं। ,

C1 || C2 || C3 || C4 
-------------------------- 
1  || a || b || 1 
2  || a || b || 4 
3  || b || d || 2 
4  || b || d || 2 

अगर यह मायने रखती है मैं SQLite (खासतौर पर WebSQL) का उपयोग कर रहा:

इसलिए उदाहरण में नीचे मैं सिर्फ पहली पंक्ति लौट आते हैं।

+8

चुनें * जहां से सी 1 = सी 4 काम करना चाहिए। क्या यह नहीं है? यदि नहीं, तो क्या वे समान डेटा प्रकार और लंबाई हैं? आपको कन्वर्ट करने की आवश्यकता हो सकती है। मुझे वेबस्क्ल के बारे में पता नहीं है, लेकिन मैंने कुछ डीबी सिस्टम देखे हैं जो एक वर्चर (5) से मेल खाने से इनकार करते हैं और दूसरा एक वर्चर (10) है, भले ही वे एक ही मूल्य रखते हों। उन प्रणालियों में आपको एक मैच प्राप्त करने के लिए कनवर्ट (वर्कर, 10, फ़ील्डनाम) का उपयोग करना होगा। – David

+0

@ डेविडस्ट्रैटन कितना शर्मनाक है! यह पूरी तरह से काम करता है। मैं खंडों में चयन लपेटने की कोशिश कर रहा था। अब तक का सबसे कम सवाल है। – JonWells

+6

बिल्कुल नहीं। हम सभी इस तरह की चीजें करते हैं। – David

उत्तर

9

SELECT * FROM FOO WHERE C1 = C4 काम करना चाहिए। क्या यह नहीं है?

यदि नहीं, तो क्या वे समान डेटा प्रकार और लंबाई हैं? आपको कन्वर्ट करने की आवश्यकता हो सकती है।

मुझे वेबस्क्ल के बारे में पता नहीं है, लेकिन मैंने कुछ डीबी सिस्टम देखे हैं जो एक वर्चर (5) से मेल खाते हैं और दूसरा एक वर्चर (10) है, भले ही वे एक ही मूल्य रखते हों। उन प्रणालियों में आप एक मैच पाने के लिए

Convert(varchar, 10, FieldName) 

की तरह कुछ का उपयोग करने के लिए है।

संबंधित मुद्दे