看到很多sql语句后边都有一个 where 1=1 一开始不太理解为什么要这样写,上网查询了下才明白是怎么回事。
where 1=1的用处
用于动态SQL
例如 lv_string := 'select tbl_name,tbl_desc from tbl_test where 1=1 '||l_condition;
当用户选择了查询的名称'abc'时l_condition :='and tbl_name = ''abc'''';但是当用户没有
选择名称查询时l_condition就为空 这样 lv_string = 'select tbl_name,tbl_desc from tbl_test
where 1=1 ' ,运行也不会出错,相当于没有限制名称条件。但是如果没有1=1的条件,则lv_string =
'select tbl_name,tbl_desc from tbl_test where ';这样就会报错。
where 1=0;
这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表 "SELECT * FROM strName WHERE 1 = 0"; 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果 集。 create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的