SQL WHERE子句中的真值表

时间:2013-01-26 15:17:01

标签: sql sql-server tsql

在TSQL WHERE子句中,真值表逻辑是否适用?

例如,我有以下代码:

WHERE (@Flag = 0 AND Title LIKE '%...%') OR (@Flag = 1 AND Title = '...')

如果@Flag = 0,First()将为True,second()将为False。所以True或False会导致True,因此,second()不会对查询结果产生影响。这是真的吗?

由于

1 个答案:

答案 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