তারা সমতুল্য নয়।
NOT (a=1 AND b=1)
এর সাথে সমান:
(NOT a=1 OR NOT b=1) <=> (a<>1 OR b<>1)
এই সমতুল্য হিসাবে পরিচিত হয় De Morgan's Law
। উদাহরণস্বরূপ দেখুন:
https://en.wikipedia.org/wiki/De_Morgan%27s_laws
বুলিয়ান বীজগণিতের এক্সপ্রেশনগুলির জন্য সমানতাকে প্রমাণ / প্রমাণ করার জন্য একটি দুর্দান্ত কৌশল হ'ল ডোমেনগুলির জন্য একটি সিটি ব্যবহার করা এবং পাশাপাশি প্রকাশের সাথে তুলনা করা:
with T(a) as ( values 0,1 )
, U(a,b) as (select t1.a, t2.a as b
from t as t1
cross join t as t2
)
select a,b
, case when not (a=1 and b=1) then 1 else 0 end
, case when a<>1 and b<>1 then 1 else 0 end
from U
A B 3 4
----------- ----------- ----------- -----------
0 0 1 1
0 1 1 0
1 0 1 0
1 1 0 0
সম্পাদনা করুন: যেহেতু ডিবি 2 বুলিয়ান ডেটাটাইপ সমর্থন করে না আমি উদাহরণটি এখানে প্রসারিত করেছি:
http://sqlfiddle.com/#!15/25e1a/19
পুনর্লিখিত ক্যোয়ারী দেখে মনে হচ্ছে:
with T(a) as ( values (0),(1),(null) )
, U(a,b) as (select t1.a, t2.a as b
from t as t1
cross join t as t2
)
select a,b
, not (a=1 and b=1) as exp1
, a<>1 or b<>1 as exp2
from U;
ক্যোয়ারির ফলাফল:
a b exp1 exp2
--------------------------------
0 0 true true
0 1 true true
0 (null) true true
1 0 true true
1 1 false false
1 (null) (null) (null)
(null) 0 true true
(null) 1 (null) (null)
(null) (null) (null) (null)
যেমন Exp1 এবং exp2 সমান হয়।