SSRS — добавление критериев фильтра LIKE в построитель отчетов

Я хочу добавить фильтры LIKE с подстановочными знаками в построителе отчетов SSRS. Я попробовал это, используя предложение contains, присутствующее в разделе данных фильтра построителя отчетов. Я пробовал как «*», так и «%», но не смог.

Я пробовал MyFieldName содержит 2451 - это удалось MyFieldName содержит 24 * - это не удается MyFieldName содержит 24% - это не удается

По ссылке ниже я чувствую, что это старая проблема, решения которой пока нет.

http://connect.microsoft.com/SQLServer/feedback/details/202792/ssrs-adding-like-filter-criteria-to-report-builder

Что вы предлагаете, ребята?

Спасибо
Рави Гупта


person TechnicalSmile    schedule 30.04.2012    source источник


Ответы (7)


Вы можете использовать функцию InStr

=IIF(InStr(Fields!MyFieldName.Value, "2451"),TRUE,FALSE)
person Darren    schedule 30.04.2012
comment
Спасибо, Даррен, за быстрый ответ, мне нужно =IIF(InStr(Fields!MyFieldName.Value, 2451*),TRUE,FALSE), и я получаю сообщение об ошибке, говорящее о недопустимом символе, когда я пишу это. - person TechnicalSmile; 30.04.2012
comment
Ниже сработало для меня, ЕСЛИ (НАЙТИ (MyFieldName, 24) = 1, ИСТИНА, ЛОЖЬ) Получил эту идею из вашего ответа. Спасибо. Я добавлю это как ответ на свой вопрос, но смогу сделать это только через 8 часов. - person TechnicalSmile; 30.04.2012
comment
Мне кажется, что это на самом деле не отвечает на вопрос, поскольку не обрабатывает подстановочные знаки. Приятно, что ОП смог продолжить свой проект, но это не поможет будущим пользователям, которые ищут способ использовать подстановочные знаки в фильтре SSRS. - person Tab Alleman; 19.01.2015
comment
@TabAlleman этот ответ был принят и помог ОП, что и было моей целью. Если у вас есть лучшее решение, не стесняйтесь публиковать его. - person Darren; 20.01.2015

В SSRS мы не можем использовать Like. Вместо которого вы можете использовать Contains.

IIF((MyFieldName).ToString().Contains("RequiredString"),"True","False)
person N.Sreenivasa Rao    schedule 26.06.2013

Отвечая на мой собственный вопрос, у меня работала функция Ниже:

ЕСЛИ(НАЙТИ(MyFieldName, "24") = 1, ИСТИНА, ЛОЖЬ)

Это всего лишь частичный ответ, поскольку он будет работать для таких случаев, как (blabla*), но не для таких случаев, как (bla*bla, blabla*). Так что любой, у кого есть идея получше, приветствуется.

Идея сделать это из комментария Даррена выше.

Спасибо
Рави Гупта

person TechnicalSmile    schedule 01.05.2012

В построителе отчетов в Visual Studio лайк есть и он работает. Используйте * в качестве подстановочного знака в строке поиска

person Gertjan    schedule 11.07.2014

Построитель отчетов не поддерживает оператор LIKE. Вы должны использовать CONTAINS;

person Diego    schedule 30.04.2012

Это довольно поздно для вечеринки, но я разработал решение для фильтров параметров для своего набора данных. Добавление фильтра в мой набор данных с
выражением:

=IIF(InStr(Fields!AccountName.Value, Parameters!paramAccountName.Value) OR Parameters!paramAccountName.Value = "*", TRUE, FALSE)

Тип

Boolean  

Оператор

=

Значение

true

Параметр по умолчанию имеет значение «*», поэтому отчет выглядит так, как будто он захватывает все по умолчанию.

person Joey C    schedule 29.01.2020

Я только что наткнулся на эту старую тему, и мне любопытно, почему вы не можете использовать подобное ключевое слово, поскольку я всегда его использовал. Вы пробовали что-то подобное? Где (имя учетной записи, например «%» + @paramAccountName + «%» или @paramAccountName = '')

person openball    schedule 24.12.2020