- এক্সিকিউট
SELECT -100/-100*10
করলে ফলাফল হয়0
। - এক্সিকিউট
SELECT (-100/-100)*10
করলে ফলাফল হয়10
। - এক্সিকিউট
SELECT -100/(-100*10)
করলে ফলাফল হয়0
। - এক্সিকিউট
SELECT 100/100*10
করলে ফলাফল হয়10
।
বিওএল বলেছেন:
যখন কোনও অভিব্যক্তিতে দু'জন অপারেটরের একই অপারেটর অগ্রাধিকার স্তর থাকে, তখন তাদের অভিব্যক্তির অবস্থানের ভিত্তিতে বাম থেকে ডানে মূল্যায়ন করা হয়।
এবং
Level Operators
1 ~ (Bitwise NOT)
2 * (Multiplication), / (Division), % (Modulus)
3 + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR)
বিওএল ভুল, বা আমি কিছু মিস করছি? দেখে মনে -
হচ্ছে এটি (প্রত্যাশিত) অগ্রাধিকার ছুঁড়ে দিচ্ছে।
-
এটি প্রবাহকে "ভুল" করার কারণ হিসাবে মনে হচ্ছে। চেষ্টা -100/(-100)*10
করলে ফলাফল পাবেন 10
। দেখে মনে /
হচ্ছে -
সমীকরণের মানটির বিরুদ্ধে প্রয়োগ করা হচ্ছে এবং তারপরে সমীকরণটি 100*10
নির্ধারণ করা হচ্ছে। আমি নিশ্চিত নই যে এটি বিওএল-তে একটি ত্রুটি, তবে আরও বেশি যে এসকিউএল সার্ভার প্রত্যাশা অনুযায়ী আচরণ করছে না। এটি স্কেল-ডক্সে একটি সমস্যা উত্থাপন এবং তাদের প্রতিক্রিয়া কী তা দেখার জন্য মূল্যবান হতে পারে ; "বৈশিষ্ট্য" এর পরামর্শে ডকুমেন্টেশনে একটি নোট যুক্ত করা যেতে পারে।
SELECT -100/(-100)*10
10. এছাড়াও ফিরে আসে 10 দেখে মনে -
হচ্ছে যে -
অপারেটর হিসাবে 100*10
গণনা করা হয়েছে কেবল তার পরে প্রয়োগ করা উচিত
A / -B * C
হয় A <div> <negate> B <multiply> C
। নেগেটের ডক্স অনুসারে গুণনের চেয়ে কম অগ্রাধিকার রয়েছে, সুতরাং ফলাফল A / -(B * C)
। আপনি ভাসমান ধ্রুবকগুলি ব্যবহার করে এটি আরও স্পষ্ট দেখতে পাচ্ছেন: 12e / -13e * 14e
বনাম 12e / (-13e) * 14e
বনাম 12e / 13e * 14e
। কারণ এটি আমাদের ফেলে দেয় কারণ আমরা সাধারণত অনার বিয়োগটি আক্ষরিক অংশ হওয়ার প্রত্যাশা করি বা কমপক্ষে খুব উচ্চতর প্রাধান্য পাই তবে এটি টি-এসকিউএল নয় not কাজ করে।