sql server - sql orderby conversion error when case is used -


मेरे पास निम्न क्वेरी है

यह तब होता है जब @sortorder = 1 या < कोड> -1 , नाम से क्रमबद्ध। हालांकि, यदि मामला कथन निकाल दिया जाता है और बस नाम आरोपित द्वारा आदेश को बिना किसी त्रुटि के क्वेरी चलाने का उपयोग किया जाता है।

क्या कोई यहाँ पर जा रहा है समझा सकता है? धन्यवाद।

  DECLARE @SortOrder INT = 1 तालिका बनाएँ # परिणाम (आईडी पहचान की पहचान (1,1), नाम ID INT, अपेक्षित NUMERIC (5,1), वास्तविक NUMERIC (5,1) ) का चयन करें नाम, अपेक्षित, वास्तविक, आईडी से (चयन करें ISNULL (NULLIF (शब्द। वार्ड, ''), नाम। प्राथमिक) एएस [नाम], # परिणाम। अनुमानित, # परिणाम। वास्तविक, # परिणाम। NamedID FROM # Result INNER को नाम पर नाम दर्ज करें। आईडी = # परिणाम.नामआईडआईड बाईं ओर शब्द पर शब्द दर्ज करें। वर्डआईडी = शब्द। WordID और शब्द। भाषाईज = 0 यूनिऑन का चयन करें 'औसत' जैसा नाम, कास्ट (((SUM (# परिणाम। अनुमानित)) के रूप में (अपेक्षित), सीएएसटी ((((एसएम (वास्तविक)) / COUNT (आईडी)) NUMERIC (5,1) एएस [वास्तविक] के रूप में, -99 99 [आईडी] के रूप में [परिणामों से]) परिणामस्वरूप आदेश @ सोर्स ऑर्डर से जब 1 नाम का नाम तब 2 था जब अपेक्षित 3 तब वास्तविक अंत एएससी, मामला @ सोर्स ऑर्डर, जब -1 नाम का नाम तब होगा जब अपेक्षित -3-3 वास्तविक एक सामान्य नियम के रूप में, कभी ऐसा कुछ न उपयोग करें। DESC    

तीन अलग-अलग प्रश्नों का प्रयोग करें:

  यदि @SortOrder = 1 तब चुनें ... नाम से आदेश; और अगर @SortOrder = 2 तो चयन करें ... और यदि अपेक्षित है तो @SortOrder = 3 का चयन करें ... वास्तविक द्वारा क्रम ... चुनें;   

आप अब क्या कर रहे हैं, एक कुशल योजना के साथ आने के लिए किसी भी सभ्य मौका SQL सर्वर क्वेरी अनुकूलक को अस्वीकार करने का 100% निश्चित तरीका है: उत्पन्न योजना मूल्य, इसलिए यह एक निश्चित रूप से चाहिए एक सूचक बाधा द्वारा क्रम को संतुष्ट करेगा विषय पर अधिक लंबी चर्चा के लिए पढ़ें।

अब आपके मामले में #temp तालिका से आने वाले आंकड़ों को स्टैक तक अधिक से अधिक अलग करने के लिए और भी महत्वपूर्ण है। चूंकि #temp तालिकाओं का अनुक्रमित समर्थन है, जब आप इसे बनाते हैं तो #temp तालिका में उचित संकुल अनुक्रमणिका जोड़ें नाम , अपेक्षित या वास्तविक आवश्यकता के अनुसार आदेश के लिए विशिष्ट, अलग, #temp तालिकाओं का उपयोग करने का अर्थ है। < / html>

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

c# - Using Vici cool Storage with monodroid -

python - referencing a variable in another function? -