1

Boolean パラメータがJasperReportsで true の場合、SQL にサブ where ステートメントを追加するにはどうすればよいですか?
たとえば、次のような SQL があります。

SELECT * FROM shops WHERE region = "Canada" ORDER BY name

and isactive = 'Y'パラメータが true の場合、 の直前に追加したいと思いますORDER BY
どうすればこれを達成できるか知っている人はいますか?

4

3 に答える 3

3

追加の句の値を設定するための追加のパラメーターを追加できます。その後$P!{}、クエリで構文を使用できます。

標本、見本:

<parameter name="param" class="java.lang.Boolean"/>
<parameter name="whereCond" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA[$P{param} ? " AND isactive='Y'" : ""]]></defaultValueExpression>
</parameter>
<queryString>
    <![CDATA[SELECT * FROM shops WHERE region='Canada' $P!{whereCond} ORDER BY name]]>
</queryString>
于 2012-10-15T06:45:58.093 に答える
0

これを試して

select * from shops where region = "Canada"
AND isActive = CASE WHEN @var = 'True' then 'Y' ELSE isActive END
order by name
于 2012-10-15T03:48:37.190 に答える
0

SQLで直接行うことができます

SELECT * FROM shops WHERE region = "Canada"
AND (@param <> `True` OR isActive = 'Y')
-----^^^^^^^^^^^^^^^^--<< Condition: Your param is not true------
ORDER BY name
于 2012-10-15T04:01:22.990 に答える