में प्रासंगिकता के आधार पर परिणाम खोजना और प्रदर्शित करना मैं ओरेकल डेटाबेस क्वेरी विकास के लिए बहुत शुरुआत कर रहा हूं। मैं ज़िप या नाम या शहर पर स्टोर खोजने के लिए अपनी प्रोजेक्ट के लिए एक खोज कार्यक्षमता विकसित कर रहा हूं, जहां उपयोगकर्ता को खोज शब्द दर्ज करने के लिए "एक HTML इनपुट बॉक्स" प्रदान किया जाएगा। वहाँ केवल तालिका नामक स्टोरओरेकल
परिणामों को प्रदर्शित करने के लिए स्थितियां हैं
- है खोज करने के लिए
ZIP
परिणाम का मिलान नहीं हुआ अवधिGROUP
औरSORT BY ZIP DESC
- होना चाहिए, तो अगर खोज करने के लिए
NAME
परिणाम का मिलान नहीं हुआ अवधि समूह होना चाहिए औरNAME IN ASC
औरCITY
- के अनुसार क्रमबद्ध करें यदि खोज शब्द
ZIP
से मेल खाता है,NAME
औरCITY
(सभी), तो पहलेZIP
करने के लिए मिलान परिणामDESC order
में, प्रदर्शित किया जाना चाहिए अगलेCITY
NAME
के बाद मैं इस
SELECT s.uuid AS uuid, COUNT(*) over() AS rowcount
FROM Stores s
WHERE s.postalcode LIKE '%87%'
OR s.city LIKE '%87%'
OR CONCAT(CONCAT(s.firstname, ' '),s.lastname) LIKE '%87%'
GROUP BY s.city, s.postalcode,
CONCAT(CONCAT(s.firstname, ' '),s.lastname), s.uuid
ORDER BY CASE WHEN s.postalcode LIKE '%87%'
THEN s.postalcode END DESC,
CASE WHEN CONCAT(CONCAT(s.firstname, ' '),s.lastname) LIKE '%87%'
THEN CONCAT(CONCAT(s.firstname, ' '),s.lastname)
ELSE s.postalcode END ASC,
CASE WHEN s.city LIKE '%87%'
THEN s.city END
जैसे कुछ बात की कोशिश की है इस क्वेरी नहीं है अपेक्षित परिणामों को प्रदर्शित करना (मेरा मतलब है कि यह आदेश के बिना परिणाम प्रदर्शित कर रहा है, पहले ज़िप की तरह नहीं, अगले शहर के नाम के बाद)।
उपर्युक्त आवश्यकताओं को पूरा करने के लिए मैं क्वेरी कैसे कर सकता हूं, क्या मुझे ऐसा करने के लिए संग्रहीत प्रक्रियाओं का उपयोग करने की आवश्यकता है? किसी सुझाव के लिए बहुत आभारी होंगे।
यह होमवर्क जैसा लगता है, इसे इस तरह चिह्नित करें। यह आज भी पूछे गए इस प्रश्न के समान चौंकाने वाला है: http://stackoverflow.com/questions/12564918/why-oracle-is-saying-not-a-group-by-expression – Harrison
क्या आपने 'केस' डालने का प्रयास किया है 'चयन' और 'समूह BY' खंडों में 'ORDER BY' खंड में निर्माण करें? इसे ठीक उसी तरह डालने का प्रयास करें और क्या हम परिणाम देख सकते हैं। – Rachcha