মান অনুযায়ী:
SELECT 1 FROM r HAVING 1=1
মানে
SELECT 1 FROM r GROUP BY () HAVING 1=1
তথ্যসূত্র আইএসও / আইইসি 9075-2: 2011 7.10 সিনট্যাক্স বিধি 1 (HAVING ধারাটির সংজ্ঞাটির অংশ):
দিন HC
হতে <having clause>
। দিন TE
হতে <table expression>
যে অবিলম্বে রয়েছে HC
। যদি TE
তাৎক্ষণিকভাবে একটি না থাকে
<group by clause>
তবে " GROUP BY ()
" অন্তর্ভুক্ত। যাক T
টেবিল দ্বারা সংজ্ঞায়িত এর বর্ণনাকারী হতে <group by clause>
GBC
অবিলম্বে অন্তর্ভুক্ত TE
দিন R
ফলও হতে GBC
।
ঠিক আছে তাই অনেক পরিষ্কার।
দৃser়তা: 1=1
সত্য অনুসন্ধানের শর্ত। আমি এর জন্য কোনও প্রশংসাপত্র দেবো না।
এখন
SELECT 1 FROM r GROUP BY () HAVING 1=1
সমতুল্য
SELECT 1 FROM r GROUP BY ()
তথ্যসূত্র আইএসও / আইইসি 9075-2: 2011 7.10 সাধারণ বিধি 1:
<search condition>
প্রতিটি দলের জন্য মূল্যায়ন করা হয় R
। এর ফলাফল <having clause>
হ'ল আর এর গ্রুপগুলির একটি গোষ্ঠীযুক্ত টেবিল যার জন্য ফলাফলটি
<search condition>
সত্য।
যুক্তিযুক্ত: যেহেতু অনুসন্ধানের শর্তটি সর্বদা সত্য, ফলাফলটি R
যা প্রকাশের দ্বারা গোষ্ঠীর ফলাফল।
নিম্নলিখিতটি 7..৯-এর সাধারণ বিধিগুলির একটি সংক্ষিপ্তসার (ক্লাস দ্বারা গ্রুপের সংজ্ঞা)
1) যদি <where clause>
নির্দিষ্ট করা না থাকে তবে T
পূর্বের ফলাফল হোক <from clause>
; অন্যথায়, T
পূর্বের ফলাফল হতে দিন <where clause>
।
2) কেস:
ক) যদি কোনও গোষ্ঠীভুক্ত কলাম না থাকে তবে এর ফলাফলটি কেবলমাত্র গ্রুপ হিসাবে <group by clause>
গঠিত গোষ্ঠীযুক্ত টেবিল T
।
সুতরাং আমরা এটি উপসংহার করতে পারেন
FROM r GROUP BY ()
শূন্য সারি সহ একটি গোষ্ঠী সমন্বিত একটি গোষ্ঠীযুক্ত টেবিলের ফলাফল (যেহেতু আর খালি)।
7.12 এর সাধারণ বিধিগুলির একটি সংক্ষিপ্তসার, যা কোয়েরি স্পেসিফিকেশন (ওরফে একটি নির্বাচনী বিবৃতি) সংজ্ঞায়িত করে:
1) কেস:
ক) যদি T
গোষ্ঠীযুক্ত টেবিল না হয় তবে [...]
খ) যদি T
একটি দলবদ্ধ টেবিল হয়, তবে
কেস:
i) যদি T
0 (শূন্য) গোষ্ঠী থাকে, তবে TEMP কে একটি খালি টেবিল হতে দিন।
ii) যদি T
এক বা একাধিক গ্রুপ থাকে তবে প্রত্যেকটি একটি টেবিল ফলনের <value expression>
প্রতিটি গ্রুপে প্রয়োগ করা হয়T
TEMP
এর M
সারি, যেখানে M
দলের সংখ্যা T
। i
TEMP এর -th কলাম মান মূল্যায়ন দ্বারা প্রাপ্ত রয়েছে i
-th <value expression>
। [...]
2) কেস:
ক) যদি <set quantifier>
DISTINCT
সুনির্দিষ্ট না হয়, তবে ফলাফলটি <query specification>
হয় TEMP
।
সুতরাং যেহেতু টেবিলের একটি গ্রুপ রয়েছে, এর অবশ্যই একটি ফলাফল সারি থাকা উচিত।
এইভাবে
SELECT 1 FROM r HAVING 1=1
1 টি সারির ফলাফল সেটটি ফেরত দেওয়া উচিত।
Qed
SELECT COUNT(*) FROM r;
1 সারি (সহ0
) প্রদান করে, যখনSELECT COUNT(*) FROM r GROUP BY ();
কোনও সারি দেয় না।