Groovy - сравнение строк дает неверные результаты - PullRequest
0 голосов
/ 27 августа 2018

Я использую groovy в качестве языка сценариев в определении набора данных для Knowage.

это 'groovy script', который я пытаюсь исправить (он должен добавить строку к запросу, если параметр lista_stabilimenti отличается от 'TUTTO'):

if ( parameters.get('lista_stabilimenti').toString().compareTo('TUTTO')==0 )
// I also tried parameters.get('lista_stabilimenti').toString().equals('TUTTO') but the result is the same

{ query = query;} //nothing
  else 
// filtering data according to the parameter
{        query = query +  "and coalesce(left(k.SubStabilimento,12),'AUSL_TOTALE') in ("+  parameters.get('lista_stabilimenti') +"  )";

}
query = query+"/* "+ parameters.get('lista_stabilimenti')+"*/";

Сейчас: Параметр lista_stabilimenti имеет значение TUTTO (в виде строки), как видно из последней отладочной печати. ​​

результирующий запрос выглядит так:

[the rest of my query ...]
and coalesce(left(k.SubStabilimento,12),'AUSL_TOTALE') in ('TUTTO'  )/* 'TUTTO'*/) temptable

но результат, который я ожидаю:

[the rest of my query ...]
/* 'TUTTO'*/) temptable
...