SELECT strftime('%Y',订购日期) as 年,strftime('%Y-%m',订购日期) as 年月 ,count(订单ID),COUNT( CASE WHEN 是否已付='true' THEN 订单ID ELSE NULL END) as yfdd,sum(应付金额) FROM 订单 where 1=1 ${if(len(a)=0,'',"and strftime('%Y',订购日期) in ('"+a+"')")} group by 年月下面子语句意思${if(len(a)=0,'',"and strftime('%Y',订购日期) in ('"+a+"')")} 为什么不不这样写${if(len(a)=0,'',"and ('"+a+"') in strftime('%Y',订购日期)")} 但是按照下面这样写测试会出错。我理解的意思:当参数为空就选择全部,不为空执行 strftime('%Y',订购日期) in ('"+a+"')")} 这个语句, strftime('%Y',订购日期) 这个执行出来就是类似,2019,2017这种格式的日期,in后面就解释不清楚,正常in前后对调才对,不够测试时错误的。但是根据in的语法也说不通。具体是什么个意思,求解释。