假設我想要一個JasperReport,如果用戶願意,它可以讓用戶過濾日期。在SQL如下:。有條件的JasperReports Where子句
select * from foo where bar = $P{bar} and some_date > $P{some.date}
現在,我不想被一些日期進行過濾,如果他們沒有通過的日期在我發現下面的雜牌人們使用:
select * from foo where bar = $P{bar} $P!{some.date.fragment}
而且some.date.fragment
參數定義與下面的默認:
($P{some.date} == null || $P{some.date}.equals("")) ? "" : "AND some_date >'" + new java.sql.Date($P{some.date}.getTime()).toString() + "'"
這不是爲toString
工作不輸出的日期,我SQL服務器可以理解的格式。我希望條件仍然使用jdbc驅動程序的準備語句並拋出參數,我只是希望準備好的語句依賴於參數是否爲null。這可以做到嗎?
在我的情況下,第二個參數是一個字符串,where子句我用$ P {} stringValue的的一部分。 –