我正在编写一个命名查询来根据年度基数获取数据。
查询
SELECT * FROM table1
WHERE ((year1 > 0) OR (year2> 0 OR (beyondYear2> 0)));
查询工作正常。从JSP
我将选择年份,因此对于该特定年份,记录应该加载。以上查询加载了所有年份范围的数据。有没有什么方法可以将Column Name
作为参数传递,以避免每年编写查询?
SELECT * FROM table1
WHERE ( :yearRange > 0);
:yearRange :作为参数。
答案 0 :(得分:1)
您可以将参数用作开关:
SELECT * FROM table1
WHERE ((year1 > 0 AND :yearRange='year1') OR (year2> 0 AND :yearRange='year2' OR (beyondYear2> 0 AND :yearRange='beyondYear2')));