在TSQL WHERE子句中,真值表逻辑是否适用?
例如,我有以下代码:
WHERE (@Flag = 0 AND Title LIKE '%...%') OR (@Flag = 1 AND Title = '...')
如果@Flag = 0,First()将为True,second()将为False。所以True或False会导致True,因此,second()不会对查询结果产生影响。这是真的吗?
由于
答案 0 :(得分:4)
是的,真值表适用逻辑。
p q p AND q p OR q T T T T T F F T F T F T F F F F
因此当p
为真且q
为假时,p OR q
将评估为真。
正如所建议的,还值得一看3 valued logic:
http://upload.wikimedia.org/wikipedia/en/thumb/2/2c/3VL_Truth_Table.png/800px-3VL_Truth_Table.png