感到惊讶我以前没见过这个,但谷歌搜索并没有产生太多的洞察力。
我正在使用一个框架来生成一个SQL查询,不管你喜不喜欢。我能够在查询上添加过滤,并且出现了一个案例,我希望排除所有可能的结果。
我最初的想法是将WHERE 1 = 0
添加到查询的WHERE子句中。
有更优化或更有效的方法吗?
由于此答案可能因平台而异,因此将在SQL Server 2008上运行
答案 0 :(得分:2)
你是对的,这是从查询中排除所有结果的最佳和最常用的方法:
WHERE 1=0
答案 1 :(得分:1)
WHERE 1 = 0
是最常用的方法。使用SELECT ... INTO #temp WHERE 1 = 0
创建临时表结构非常常见。
请注意,此情况可能导致查询引擎短路查询计划,因此如果您将其用于查询分析,请务必小心。