${if(len(产地)=0,"","and mas.LEAF_ORIGIN_CD in ('"+SUBSTITUTE(产地,',',"','")+"')")}
语法是正确的。。只勾上前面 三个呢(数据集里面参数的名称与参数面板上面的名称是否一样?都是产地吗?),还有你设置了实际值与显示值。。。你要看下。他传的是实际值。那么你sql的字段mas.LEAF_ORIGIN_CD是不是实际值?