BIRT 计算列使用运算符 LIKE
BIRT computed column use operator LIKE
如何在 BIRT 计算列中使用运算符?
我试过了:
if (row["Dept"] == "%desc%") { 'Test1' } else { 'Test2' }
但是没用。
和
if (row["Dept"] like "%desc%") { 'Test1' } else { 'Test2' }
我有一条错误消息 - [Row:1, Column:28] missing ) after condition
例如在 Crystal 报告中我使用
if {Dept} like ["*desc*", "*desc1*"] then 'Test1' else 'Test2'
但是BIRT不支持运算符'then'
提前致谢
LIKE
是 SQL 语法,而计算列的表达式语法是 Javascript。但是,当您可以使用纯 SQL 获得相同的结果时,为什么还要使用计算列呢?例如。对于 Oracle,以下 SQL 表达式是等效的:
case
when DEPT like '%desc%' then 'Test1'
else 'Test2'
end
OTOH 如果你坚持使用计算列,你可以使用正则表达式。参见 JavaScript operator similar to SQL "like"
如何在 BIRT 计算列中使用运算符?
我试过了:
if (row["Dept"] == "%desc%") { 'Test1' } else { 'Test2' }
但是没用。
和
if (row["Dept"] like "%desc%") { 'Test1' } else { 'Test2' }
我有一条错误消息 - [Row:1, Column:28] missing ) after condition
例如在 Crystal 报告中我使用
if {Dept} like ["*desc*", "*desc1*"] then 'Test1' else 'Test2'
但是BIRT不支持运算符'then'
提前致谢
LIKE
是 SQL 语法,而计算列的表达式语法是 Javascript。但是,当您可以使用纯 SQL 获得相同的结果时,为什么还要使用计算列呢?例如。对于 Oracle,以下 SQL 表达式是等效的:
case
when DEPT like '%desc%' then 'Test1'
else 'Test2'
end
OTOH 如果你坚持使用计算列,你可以使用正则表达式。参见 JavaScript operator similar to SQL "like"