को मजबूर करने के लिए पूछताछ मैं किसी भी रिकॉर्ड को वापस किए बिना एक चयन क्वेरी करने के लिए एक एएनएसआई-एसक्यूएल विधि की तलाश में हूं, लेकिन एक टीडीटासेट की फ़ील्ड संरचना भरें।एएनएसआई एसक्यूएल क्वेरी 0 रिकॉर्ड्स
विधि मैंने पाया जोड़कर एक "जहां 1 = 0" किसी भी प्रश्न में, उदाहरण के लिए:
Select Id, name, province
from customers
where 1=0
यह एक काफी तुच्छ उदाहरण है, यह एक छोटे और अधिक जटिल है जब मैं काम करना है बदल जाता है उपयोगकर्ता द्वारा दर्ज प्रश्नों के साथ, फिर उन्हें पार्स करें, जहां खंड पहले से है, तो हटाएं, और "1 = 0" द्वारा प्रतिस्थापित करें।
उपयोगकर्ता के प्रवेश किया क्वेरी में पिछले खंड जहां खंड है, तो वहाँ कोई समस्या नहीं सब पर है, लेकिन इस तरह और अधिक जटिल प्रश्नों के बारे में क्या:
select
c.lastname,
sum(cs.amount)
from customersales cs
join customers c on c.idcustomer=cs.idcustomer
/* where 1=0 */
group by c.idcustomer, c.lastname
"जहां 1 = 0 का उपयोग करके "विधि, पिछले उदाहरण में इसे सम्मिलित करने का एकमात्र तरीका एक शक्तिशाली एसक्यूएल पार्सर है (याद रखें कि उपयोगकर्ता जटिल प्रश्नों को शामिल कर सकता है, जिसमें सबकुरीज़ और सब कुछ शामिल है), जो यह समझ सकते हैं कि इस स्ट्रिंग को कहां शामिल करना है।
क्या कोई इसे करने का बेहतर तरीका जानता है? मैं "सीमा 1" का उपयोग नहीं कर सकता क्योंकि यह एक एएनएसआई तरीके से होना चाहिए।
आपको इसकी क्या आवश्यकता है? –
मुझे इसकी आवश्यकता है क्योंकि मैं एक सॉफ़्टवेयर में एक सुविधा जोड़ रहा हूं, जो उपयोगकर्ता को कस्टम-निर्मित क्वेरी बनाने देता है, फिर चार्ट, टेबल्स दिखाने और उनके उपयोग से रिपोर्ट बनाने के लिए क्वेरी का उपयोग करें। मुझे रिपोर्ट तैयार करने के लिए इसकी आवश्यकता है। उपलब्ध डेटासेट (उपयोगकर्ता द्वारा किए गए प्रश्नों से निकाले गए) के साथ रिपोर्ट डिज़ाइनर दिखाने के लिए मुझे इस सुविधा की आवश्यकता है। "डेटासेट" प्रश्नों के बाद निकाले गए फ़ील्ड की सरल सूचियां हैं। बीटीडब्ल्यू, मैं फास्ट रिपोर्ट 4 का उपयोग कर रहा हूं। ग्राहक निर्मित क्वेरी बनाने के लिए –
: आप तेजी से रिपोर्ट के साथ तेज क्वेरी निर्माता का उपयोग क्यों नहीं करते हैं। और तेजी से घन क्यों नहीं? –