Groovy - сравнение строк дает неверные результаты
Я использую 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