Проверка параметра на пустой список
Имеется большой SQL запрос для отчета. Для формирования отчета передаются параметры. Один из параметров это список услуг, которые выбирает пользователь. Со временем этот список сильно вырос, и составления отчета по всем услугам сразу стало проблематично.
Пример таблицы
id , title
100, name100
101, name101
102, name102
...
Ранее часть запроса имела вид
SELECT id, title
FROM tbl_service
WHERE id IN (${service_id})
В качестве решения данной проблемы попробовал, такой вариант
SELECT id, title
FROM tbl_service
WHERE id IN (${service_id}) OR ${service_id} IS NULL
В таком варианте отлично работает с одной выбранной услугой или когда ничего не выбрано (выгружает все), но при выборе двух и более услуг возникает синтаксическая ошибка.
Вариант
SELECT id, title
FROM tbl_service
WHERE id IN (${service_id}) OR (${service_id}) IS NULL
полностью не работает, сразу синтаксическая ошибка при любом параметре.
В настоящий момент временно ввел дополнительную булеву переменную - "Выгрузить все", но пользователям не нравится. Хотят чтобы выгружалось все, если ничего не выбрано. Сейчас запрос выглядит так
SELECT id, title
FROM tbl_service
WHERE id IN (${service_id}) OR ${allservice} = 1
Используются NAUMAN SD, Pentaho Report Designer 3.9, MS SQL Server
Прошу помочь с решением, я уже перепробовал все, что смог придумать.
Дополнительно:
Прямой доступ к БД отсутствует. Все взаимодействие через pentaho.