use*_*662 3 sql oracle procedures
在Oracle程序中使用像"where 0 = 0"这样的语句我有点困惑吗?有人可以澄清一下吗?即使我们是为动态选择而做的,为什么即使我们在查询中追加实际条件,我们也会添加这个语句?这个条件会对结果集产生什么影响吗?我经历了 如何选择列包含字符串中任何单词的所有行?但我完全理解使用"where 0 = 0"的原因.有人可以告诉我使用这种情况的正当理由吗?
提前致谢..;)
我们使用0 = 0或通常1 = 1作为存根:
select *
from My_Table
where 1 = 1
Run Code Online (Sandbox Code Playgroud)
因此,当您编写过滤器时,可以通过添加/注释掉单行来完成:
-- 3 filters added
select *
from My_Table
where 1 = 1
and (Field1 > 123) -- 1st
and (Field2 = 456) -- 2nd
and (Field3 like '%test%') -- 3d
Run Code Online (Sandbox Code Playgroud)
比如,下一个版本将删除两个过滤器:
-- 3 filters added, 2 (1st and 3d) removed
select *
from My_Table
where 1 = 1
-- and (Field1 > 123) -- <- all you need is to comment out the corresponding lines
and (Field2 = 456)
-- and (Field3 like '%test%')
Run Code Online (Sandbox Code Playgroud)
现在让我们以非常简单的方式恢复3D过滤器:
-- 3 filters added, 2 (1st and 3d) removed, then 3d is restored
select *
from My_Table
where 1 = 1
-- and (Field1 > 123)
and (Field2 = 456)
and (Field3 like '%test%') -- <- just uncomment
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11033 次 |
| 最近记录: |