हाँ, और कोई :-)
एसक्यूएल ही परवाह नहीं है क्या आदेश स्तंभों में बाहर आने लेकिन, आप का उपयोग करने के लिए गए थे, तो:
select age, name, sex from ...
आप पाते हैं कि वे शायद उस क्रम में बाहर आया (हालांकि मुझे यकीन नहीं है कि एसक्यूएल मानकों को यह जरूरी है)।
अब आप नहीं चाहते हो सकता है ऐसा करने के लिए, लेकिन कभी कभी जीवन निष्पक्ष :-)
नहीं है तुम भी डीबीएमएस डेटा परिभाषा तालिकाओं का उपयोग गतिशील रूप से एक प्रश्न के निर्माण के लिए के अन्य संभावना है। यह गैर-पोर्टेबल है लेकिन अधिकांश डीबीएमएस 'इन तालिकाओं (जैसे डीबी/2 के SYSIBM.SYSCOLUMNS
) की आपूर्ति करते हैं और आप आदेशित फैशन में कॉलम नामों का चयन कर सकते हैं। कुछ की तरह:
select column_name from sysibm.syscolumns
where owner = 'pax' and table_name = 'movies'
order by column_name;
तो फिर तुम के परिणामों का प्रयोग कि क्वेरी वास्तविक क्वेरी के निर्माण के लिए:
query1 = "select column_name from sysibm.syscolumns" +
" where owner = 'pax' and table_name = 'movies'" +
" order by column_name"
rs = exec(query1)
query2 = "select"
sep = " "
foreach colm in rs:
query2 += sep + colm["column_name"]
sep = ", "
query2 += " from movies order by rating"
rs = exec(query2)
// Now you have the rs recordset with sorted columns.
हालांकि, अगर तुम सच में गंभीर रूप से सभी क्वेरी *
चयन जांच करनी चाहिए - विशाल बहुमत में मामलों में, यह अनावश्यक और अक्षम है। और डेटा की प्रस्तुति कुछ ऐसा है जो संभवतः प्रस्तुति परत द्वारा किया जाना चाहिए, डीबीएमएस स्वयं नहीं - डेटा को यथासंभव कुशल तरीके से वापस करने के लिए डीबीएमएस छोड़ा जाना चाहिए।
हम्म, मुझे लगता है कि मुझे स्ट्रिंग सॉर्टिंग करने की अच्छी पुरानी विधि का सहारा लेना है :) –
मैं इसके साथ सहमत हूं, कभी भी उत्पादन कोड में * उपयोग नहीं करता हूं। उदाहरण के लिए सुरक्षा के लिए, जब आप बाद में किसी कॉलम को सूचीबद्ध नहीं करते हैं, तो आप कभी नहीं जानते हैं। केवल आवश्यक कॉलम लाने के लिए हमेशा क्वेरी बनाएं। और यदि आप इसे गतिशील रूप से ऐसा करना चाहते हैं, लेकिन अन्य डेवलपर्स को देखने के लिए यह बहुत स्पष्ट रूप से ध्यान दें। –
एक और, यदि SQL दृश्यों का उपयोग करना * में अधिक दुष्प्रभाव हैं यदि अंतर्निहित तालिकाओं को बदल दिया गया है (नया या हटाया गया कॉलम) दृश्य अद्यतन नहीं होता है, तो यह नए कॉलम नहीं दिखा सकता है या मौजूदा कॉलम दृश्य दृश्य के रूप में बदला जा सकता है सूचकांक द्वारा कॉलम उनके निर्माण पर था। –