有时候我们编码会做一个必定会正确的判断、为什么呢?

BEGIN
DECLARE @sql AS Varchar(1000)
SET @sql = 'select * from View_jydhwxx where 1=1'
if @sxhh <>''
begin
    set @sql= @sql+N' and sxhh = '+''''+@sxhh+''''
end
阅读 2.2k
1 个回答
  • 参见:

  • 大致的说法是,如果你需要在后面附加条件的话,(比如某些SQL构造器,或者手动拼接SQL字符串),可以任意地直接添加AND或者OR,并不用考虑你当前WHERE子句中,条件是0个还是大于0个

  • 如果不添加WHERE 1 = 1,拼接时,你就要考虑,如果当前没有WHERE条件,就需要添加WHERE ....,如果当前有WHERE,就需要在WHERE子句中直接加AND/OR条件

  • 但是如果事先有一个WHERE 1 = 1,那么能确保WHERE条件存在,所以后面只需要直接加AND/OR条件就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进