(decode(?1,'',1, 0) = 1) or department_id = ?1 decode()相当于三元表达式 decode(?1,'',1, 0):传入的参数是否为'',是返回1,否返回0; decode(?1,'',1, 0) = 1:返回的是1,与1做比较,等于为true,不执行or后面的语句,否则执行or后面的语句。
判断传的参数是否为空,为空就不执行or后面的语句