मैं सभी प्रोफाइल पहले कि कुछ स्थान (रों) के लिए कर रहे हैं प्राप्त करना चाहते हैं: "कीवर्ड 'के पास गलत वाक्य रचना:आदेश द्वारा ... में (...) एएससी
SELECT * FROM profile
WHERE location IN ('a', 'b', 'c') OR isDefault=1
ORDER BY location IN ('a', 'b') DESC, -- put to the front if location in 'a','b'
isDefault DESC, -- for each of both groups, put default profiles before the others.
location ASC -- and sort each of the up to four groups by location.
यह त्रुटि फेंकता में '। "। अगर मैं ऑर्डर क्लॉज हटा देता हूं, तो परिणाम वापस आते हैं।
यहां क्या गलत है?
आपके अनुरोध के साथ एक संभावित मुद्दा यह है कि, 'ऑर्डर' में 'IN' की अनुमति नहीं है, यह है कि आपके द्वारा चुने गए स्थानों का कोई भी आंतरिक प्रकार नहीं होगा "। क्या वाकई आप क्या चाहते हैं? _a_ और _b_ शीर्ष पर समाप्त हो जाएंगे, लेकिन यह _b_ और _a_ के रूप में हो सकता है। – Mackan
@ मैकन 'स्थान एएससी' उन्हें सॉर्ट करेगा, इसलिए हमेशा बी के सामने होता है (यदि दोनों के लिए डीफॉल्ट समान है), * यहां तक कि * यदि मैं 'इन' द्वारा ऑर्डर ('बी', 'ए') पूछता हूं, और यह पूरी तरह से इरादा है। – Alexander
सच है, मुझे नहीं पता कि मैं क्या सोच रहा था - लेकिन यह सही समझ में आया क्योंकि मैं इसे सोच रहा था ;-) – Mackan