2011-01-31 122 views
2

名为income_source数据库字段使用查询:字符串比较表达式

SELECT * FROM table_name WHERE income_source LIKE "salaried%" 

这检索income_source值与“工薪”的前缀。在iReport的,对于该领域的PrintWhenExpression值设置为:

$F{income_source}.equals("Salaried")? Boolean.TRUE:Boolean.FALSE 

为什么报表输出从SQL输出有什么不同?

回答

5

有几个问题:

  • "salaried%"在SQL不同于的"Salaried"表达式中的值。
  • "salaried%"使用%来匹配字母d后的所有文本。
  • PrintWhenExpression有一点冗余。

试试下面的表达式:

$F{income_source}.startsWith("salaried") 

或者:

$F{income_source}.trim().toLowerCase().startsWith("salaried") 

其中一个应该工作的。当您选中空时,您还需要确保空白。否则,表达式变为:

$F{income_source} == null ? Boolean.FALSE : 
    $F{income_source}.trim().toLowerCase().startsWith("salaried")