जोड़ा गया: SQL Server 2000 और 2005 के साथ कार्य करना, इसलिए दोनों पर काम करना है। साथ ही, value_rk एक संख्या/पूर्णांक नहीं है (त्रुटि: ऑपरेटर डेटा प्रकार अद्वितीय पहचानकर्ता मिनी ऑपरेटर के लिए अमान्य है)एक कॉलम का चयन करें DISTINCT SQL
क्या एक कॉलम "DISTINCT" मैच करने का कोई तरीका है जब मुझे अन्य कॉलम लौटाए जाने की परवाह नहीं है ? उदाहरण:
**Table**
Value A, Value L, Value P
Value A, Value Q, Value Z
मुझे पहले पंक्तियों (मूल्य ए) के आधार पर इन पंक्तियों में से केवल एक को वापस करने की आवश्यकता है। मुझे अभी भी दूसरे और तीसरे कॉलम के परिणाम की आवश्यकता है (दूसरा वास्तव में बोर्ड के सभी हिस्सों से मेल खाता है, लेकिन तीसरा एक अनूठी कुंजी है, जिसे मुझे कम से कम एक की आवश्यकता है)। वहाँ है कि में एक सरल समाधान का है, इसलिए यदि
SELECT value, attribute_definition_id, value_rk
FROM attribute_values
WHERE value IN (
SELECT value, max(value_rk)
FROM attribute_values
)
ORDER BY attribute_definition_id
मैं ColdFusion में काम कर रहा हूँ मैं भी कि के लिए खुला रहा हूँ:
यहाँ मैं अब तक क्या आपके पास यह है, हालांकि यह स्पष्ट रूप से काम नहीं करता है । मैं पहले कॉलम "मान" को सीमित या "समूह" द्वारा सीमित करने की कोशिश कर रहा हूं। value_rk मेरी बड़ी समस्या है क्योंकि प्रत्येक मान अद्वितीय है लेकिन मुझे केवल एक की आवश्यकता है।
नोट: value_rk एक नंबर नहीं है, इसलिए इस काम नहीं करता है
अद्यतन: मैं एक काम कर संस्करण मिल गया है, यह शायद काफ़ी एक शुद्ध SQL संस्करण की तुलना में धीमी है, लेकिन ईमानदारी से कुछ भी इस बिंदु पर काम कर कुछ भी नहीं है। यह परिणाम पहली क्वेरी से लेता है, एक दूसरे प्रश्न को इसके परिणामों को सीमित करने के अलावा, और मेल खाने वाले मान के लिए मिलान करने वाले value_rk को पकड़ता है। इस प्रकार:
<cfquery name="queryBaseValues" datasource="XXX" timeout="999">
SELECT DISTINCT value, attribute_definition_id
FROM attribute_values
ORDER BY attribute_definition_id
</cfquery>
<cfoutput query="queryBaseValues">
<cfquery name="queryRKValue" datasource="XXX">
SELECT TOP 1 value_rk
FROM attribute_values
WHERE value = '#queryBaseValues.value#'
</cfquery>
<cfset resourceKey = queryRKValue.value_rk>
...
तो आपके पास यह है, कोल्डफ्यूजन में एक कॉलम को स्पष्ट रूप से चुनकर। कोई शुद्ध SQL सर्वर 2000/2005 सुझाव अभी भी बहुत स्वागत है :)
क्या आप अपनी जरूरतों को स्पष्ट कर सकते हैं? कोई पंक्ति, लेकिन मूल्य प्रति केवल एक पंक्ति? उस मान के साथ पंक्ति जिसमें अधिकतम value_rk है? मुझे यकीन नहीं है कि मैं समझता हूं कि आप यहां क्या कर रहे हैं। – tvanfosson
> नोट: value_rk कोई संख्या नहीं है, इसलिए यह काम नहीं करता है। इसका कोई संबंध नहीं है कि आपकी क्वेरी क्यों विफल हो जाती है। आपने आरडीबीएमएस का उपयोग नहीं किया है जिसका उपयोग आप कर रहे हैं लेकिन ओरेकल में आप वर्ण कॉलम पर MAX का उपयोग कर सकते हैं। –
एमएस एसक्यूएल गैर-न्यूमेरिक कॉलम पर MAX का भी उपयोग कर सकता है। – BradC