কিউজিআইএস ফিল্টার এক্সপ্রেশনগুলিতে! = NULL এবং NULL এর মধ্যে পার্থক্য কী?


26

NULLমানগুলির একটি বৈশিষ্ট্যযুক্ত আমার একটি আকৃতির স্তর রয়েছে যা থেকে আমি পৃথক মানের জন্য ফিল্টার প্রয়োগ করতে চাই NULL

এখানে চিত্র বর্ণনা লিখুন

এই জাতীয় ক্যোয়ারী নির্মাণের জন্য উপলব্ধ গুই ব্যবহার করে স্বজ্ঞাতভাবে চেষ্টা করা হবে

"obj_art" != NULL

এখানে চিত্র বর্ণনা লিখুন

যার অর্থ '' objজেক্ট_আর্ট ' NULL' থেকে আলাদা আলাদা বৈশিষ্ট্যযুক্ত সমস্ত বৈশিষ্ট্য আমাকে দিন ' (এই গণনাটি অবশ্যই 0 এরও বেশি)। এই কোয়েরিটি পরীক্ষা করা আমার দৃষ্টিকোণ থেকে একটি অদ্ভুত ফলাফল সরবরাহ করে:

এখানে চিত্র বর্ণনা লিখুন

এখন পর্যন্ত আমি যা শিখেছি তা হ'ল আমি এটি ব্যবহার করে এটি অর্জন করতে পারি

"obj_art" IS NOT NULL

প্রশ্নটি হ'ল != NULLএবং এর মধ্যে পার্থক্য কী IS NOT NULL?


আমি যতদূর জানি এটি কেবল সিনট্যাক্স। নাল ব্যবহার যখন হয় বা হয় না। অন্য ব্যবহার = বা! =
নিলসগারিট

" সত্যিই চেষ্টা করা উচিত" কেউ ? কেন? NULL একটি মান নয়। এটি আক্ষরিক অর্থে একটি মান অনুপস্থিত। আপনি NULL "সমান" করতে পারবেন না! অপারেটরটির !=অর্থ "নয়"; এর অর্থ "সমান নয়" IS NOT"" নয় "তাই আমি এটি পুরোপুরি স্বজ্ঞাত বলে মনে করি :)
মনিকা

বোঝার যে ছাড়া @LightnessRacesinOrbit NULLএকটি মান নয় আমি বলতে হবে এটা হল ব্যবহার করার চেষ্টা স্বজ্ঞাত =বা !=কিভাবে আপনি অন্য কোন মান মূল্যায়ন হিসাবে করা হয়। এটি যতক্ষণ না আপনি জানেন যে NULLএটি এমন কোনও মান নয় যা এটি ব্যবহার IS NOTকরার চেয়ে সত্যই স্বজ্ঞাত !=NULLসত্যিকার অর্থে কী তা অনেকেই জানেন না ।
মিডাভালো

এবং তদ্ব্যতীত, জিইউআইতে NULLমান তালিকার (উপরে সিপি।) থাকে এবং তাই এটি একটি 'স্বাভাবিক' মান হিসাবে বিবেচিত হয়। এবং কোনও বোতাম নেই IS NULL, না আমি কি মিস করেছি ?! সুতরাং, কেবল যখন এই জাতীয় ক্যোয়ারী টাইপ করার সময় এবং জ্ঞানের সাথে, NULLঅবশ্যই এটি একটি বিশেষ উপায়ে চিকিত্সা করা উচিত যা আমরা অন্তর্দৃষ্টি সম্পর্কে আলোচনা করতে পারি, তবে শুরুর জন্য এই জিইউআইয়ের প্রসঙ্গে নয়।
জোচেন শোয়ার্জে

@ মিদাভালো: যদিও এটি সত্য, আমি বিনীতভাবে কোনও ভাষা বৈশিষ্ট্যটি কী তা না দেখিয়ে ব্যবহার করার পরামর্শ দেব :) অনুমান করে প্রোগ্রামিংয়ের কাজ হয় না।
মনিকার সাথে লাইটনেস রেস

উত্তর:


33

দাবি অস্বীকার: কিউজিআইএসে ফিল্টারিংয়ের সিনট্যাক্স এসকিউএল এর সাথে কাজ করে, তাই আমি এখানে ধরে নিচ্ছি যে এসকিউএল বিধি প্রযোজ্য। আমি পুরোপুরি নিশ্চিত নই যে এটি সম্পূর্ণরূপে সঠিক কিনা তবে এটি যৌক্তিক বলে মনে হয় এবং এটি আচরণের ব্যাখ্যা দেয়।


ফিল্টার এসকিউএল এর সাথে কাজ করে, এজন্য আপনাকে একটি উত্তর খুঁজতে হবে।

সংক্ষেপে, একটি যৌক্তিক লজিকাল অপারেটর ব্যবহার করার সময় null, ফলাফল সর্বদা হয় null। তবে পরীক্ষার জন্য null, এসকিউএল IS (NOT)তুলনা কার্যকারিতা নিয়ে আসে , যা এটি আপনার লক্ষ্যযুক্ত ফিল্টারিংয়ের জন্য ব্যবহার করতে দেয়।

পরীক্ষা করে দেখুন বোহেমিয়ান এর উত্তর একটি আরো বিস্তারিত আলোচনার জন্য Stackoverflow উপর।


19

NULLহয় না একটি মান, অতএব এটা সমান না পারেন =বা না সমান !=কিছু। এটা তোলে শূন্য হিসাবে একই নয় 0যা হয় একটি মান।

একটি NULLইঙ্গিত দেয় যে আপনি যে ঘরে তাক করছেন সেটিতে কোনও মান রেকর্ড করা হয়নি। কোনও মান বিদ্যমান কিনা তা পরীক্ষা করতে আপনি সেলটি IS NULLকিনা তা জিজ্ঞাসা করুনIS NOT NULL

  • IS NULL ঘরটি খালি রয়েছে কিনা তা পরীক্ষা করে দেখুন
  • IS NOT NULL ঘরটি খালি নেই কিনা তা পরীক্ষা করে দেখুন

আপনি কিছু রেকর্ড যেখানে একটি মান থাকে তাহলে One, Two, Threeএবং বাকি NULLএবং আপনি সবকিছু করা হয় যে না খুঁজে পেতে চান Twoআপনার মত কিছু ব্যবহার করতে হবে

value != 'Two' OR value IS NULL

যেহেতু NULL মানগুলি সমান / সমান কোয়েরিতে ফেরত পাবে না। যদি আপনি কেবল ব্যবহার করেন value != 'Three'তবে ফলাফলটি সমস্ত NULLরেকর্ডকে বাদ দেয় কারণ NULLএটি কোনও মান নয় যা সমান বা সমান নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.