TSQL WHERE句では、真理値表のロジックが適用されますか?
たとえば、次のコードがあります。
WHERE (@Flag = 0 AND Title LIKE '%...%') OR (@Flag = 1 AND Title = '...')
@Flag = 0の場合、First()はTrueになり、second()はFalseになります。したがって、TrueまたはFalseはTrueになります。したがって、2番目の()はクエリ結果に影響を与えません。本当?
ありがとう
TSQL WHERE句では、真理値表のロジックが適用されますか?
たとえば、次のコードがあります。
WHERE (@Flag = 0 AND Title LIKE '%...%') OR (@Flag = 1 AND Title = '...')
@Flag = 0の場合、First()はTrueになり、second()はFalseになります。したがって、TrueまたはFalseはTrueになります。したがって、2番目の()はクエリ結果に影響を与えません。本当?
ありがとう
はい、真理値表は論理を適用します。
pqp AND qp OR q TTTT TFFT FTFT FFFF
したがって、p
trueとq
falseの場合、truep OR q
と評価されます。
提案されているように、3値論理も一見の価値があります。
(出典:wikimedia.org)