এলএনএনভিএল হ'ল ফাংশনটিতে নির্মিত একটি অরাকল যা মিথ্যা বা অজানা অবস্থায় মূল্যায়ন করার শর্তের জন্য সত্য প্রত্যাবর্তন করে এবং সত্যকে মূল্যায়ন করার শর্তে মিথ্যা প্রদান করে। আমার প্রশ্ন হ'ল কেবল শুল্কের মানগুলি হ্যান্ডেল না করে সত্যের অবস্থার বিপরীতে ফিরে আসার কী লাভ হবে?
উদাহরণস্বরূপ, ধরুন আপনার কাছে স্টার্টকমিশন এবং কারেন্টকমিশন কলামগুলির সাথে একটি এমপ টেবিল রয়েছে যাতে শূন্যগুলি থাকতে পারে। নিম্নলিখিত মানগুলি নালীর সাথে কেবল সারিগুলি দেয়:
SELECT * FROM Emp WHERE StartCommission = CurrentCommission;
আপনি যদি সারিগুলি অন্তর্ভুক্ত করতে চেয়েছিলেন যেখানে উভয়ই কমিশন নাল হয় আপনি এই জাতীয় কিছু করতে পারেন:
SELECT * FROM Emp WHERE StartCommission = CurrentCommission
OR StartCommission IS NULL OR CurrentCommission IS NULL;
দেখে মনে হচ্ছে এই সিনট্যাক্সটি সংক্ষিপ্ত করার জন্য কোনও ফাংশন উপস্থিত থাকবে, তবে এলএনএনভিএল ব্যবহার করে সমস্ত অ-সমমানের রেকর্ড এবং নালার সাথে সমস্ত রেকর্ড ফিরে আসে।
SELECT * FROM Emp WHERE LNNVL(StartCommission = CurrentCommission);
এতে যোগ না করা কেবল শালীন ছাড়াই সারি দেয়। আমার কাছে মনে হয় যে এই মামলার পছন্দসই কার্যকারিতা হ'ল সত্য শর্তগুলি সত্য, মিথ্যা শর্তগুলি মিথ্যা রাখা এবং অজানা শর্তগুলি সত্যের কাছে মূল্যায়ন করা। আমি কি এখানে সত্যিই কম ব্যবহারের কেস তৈরি করেছি? সত্যই কি অজানাটিকে সত্যে, সত্যকে মিথ্যে এবং মিথ্যেকে সত্যে রূপান্তরিত করা কি আরও বেশি সম্ভাবনাযুক্ত?
create table emp (StartCommission Number(3,2), CurrentCommission Number(3,2));
insert into emp values (null,null);
insert into emp values (null,.1);
insert into emp values (.2,null);
insert into emp values (.3,.4);