2010-01-06 12 views
9

में सॉर्ट करने के लिए कैसे करें मैंने एक एसक्यूएल व्यू बनाया है और मुझे 4 फ़ील्ड पर ORDER BY का उपयोग करके चयन के परिणामों को सॉर्ट करने की आवश्यकता है, लेकिन मुझे संदेश मिल रहा है कि ORDER BY का उपयोग दृश्यों में नहीं किया जा सकता मैं टॉप का उपयोग करता हूं। क्या कोई बता सकता है कि टॉप की आवश्यकता क्यों है, और क्या किसी के पास एसक्यूएल व्यू में सॉर्ट करने के लिए वर्कअराउंड है?एक एसक्यूएल व्यू

धन्यवाद।

उत्तर

-1

एसक्यूएल सर्वर का उपयोग कर रहे हैं, तो आप

select top 100 percent * 
from MyTable 
order by MyColumn 

बेशक आप अपने ध्यान में रखते हुए एक * उपयोग नहीं करना चाहिए, मैं सिर्फ यह यहां इस्तेमाल किया संक्षिप्तता के लिए कर सकते हैं।

+3

2005 से एसक्यूएल ऑप्टिमाइज़र इस आदेश को हटा देता है इसलिए यह काम नहीं करता है! इसके साथ सावधान रहें। –

+0

क्या आपके पास कोई संदर्भ है? – RedFilter

+1

यकीन है! सीधे एसक्यूएल सर्वर क्वेरी ऑप्टिमाइज़र टीम से: http://blogs.msdn.com/queryoptteam/archive/2006/03/24/560396.aspx –

17

आपको एक दृश्य को सॉर्ट करने की आवश्यकता नहीं है। ताकि आप इसे सॉर्ट जब आप इसे से चयन के लिए एक दृश्य एक मेज की तरह है:

select * from yourView order by yourColumns 
+2

* * सही उत्तर – gbn

5

कोई गारंटी नहीं देखने का उत्पादन

केवल सबसे बाहरी आदेश का आदेश दिया हो जाएगा द्वारा नहीं है परिणाम सेट के लिए लागू होता है : किसी भी आंतरिक नहीं। द्वारा काम करने की गारंटी दी जा सकती है तो केवल इस आदेश:

SELECT col1, col2, FROm MyView ORDER BY col2 

आप इसे विचार या व्युत्पन्न तालिकाओं के लिए जोड़ सकते हैं और यह "intermediate materialisation" मजबूर करता है क्योंकि परिणाम का आदेश दिया जाना है। हालांकि, SQL सर्वर 2005 और इसके बाद के संस्करण के लिए, आप TOP 2000000000TOP 100 PERCENT नहीं उपयोग करने के लिए (कि एचएफ कि डैनियल वसालो उल्लेख के अलावा!)

किसी आपके विचार क्रम भिन्न है कि आंतरिक रूप से करने के लिए कुछ बिंदु पर भी प्रयोग करेंगे।

0

आप कोशिश कर सकते हैं:

CREATE VIEW View_Products 
AS 
SELECT ProductID, ProductName, UnitPrice, CreateDate FROM Products 
Order by CreateDate DESC 
OFFSET 0 ROWS 
0

स्तंभ जिसके साथ आप दृश्य मदद सॉर्ट करने के लिए करना चाहते हैं पर एक सूचकांक बनाने चाहेंगे?

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