有没有其他更优雅的1=2表达式可以用于sql中的where子句?
类似于WHERE false的东西
在谷歌上找不到答案。
编辑:
在C++等语言中,表达式(1==2)和0是等价的,为什么TSQL不接受false或true作为条件?
发布于 2014-09-09 13:49:16
那么,TSQL将WHERE子句定义为具有各种“复合”的WHERE <search_condition>?排除“表达式结果”的语法。以下是条件“的参考资料。
False,4是表达式的结果。
您所期望的可能更符合逻辑,因为WHERE充当一个输入/输出门,当然,计算出的任何"search_condition“都代表一个布尔值。但是对于TSQL,它必须是"search_condition“,而不是布尔可计算表达式。
Ms-Access以您提到的方式工作,其中WHERE子句只起作用,是的,只对表达式的计算起作用。
这在Ms-Access中是有效的。
where false -- excludes all
where 4 -- includes all, as casts to true
where mycolumn = 'aa' -- depends on mycolumn content发布于 2014-09-09 13:36:39
首先,我认为1=2本身是优雅的。因此,您需要确切地指定在何种情况下或如何使用它。接下来,1=2指定一个假条件(您已经知道了)。这主要是在您想要检查一个假条件时使用的,比如您想要创建表的架构而不复制数据。一个类似的东西是1=1,它用于真条件。
此外,就性能而言,我认为1=2将是一个更好的选择(但我不能百分之百肯定)
发布于 2014-09-09 13:37:26
您还可以在where子句中使用false关键字。
https://stackoverflow.com/questions/25745897
复制相似问题