mohammed mqi Ответов: 1

Подстрока выражения Ssrs из string в char "-"


как я могу вычесть строку из поля например у меня есть это в
мое поле "гипер супер маркет - Саудовская Аравия"
мне нужны все слова раньше "-" это то, что мне нужно "гипер супер маркет"
как я могу удалить все символы после "-"

Что я уже пробовал:

я попробую также это и не работать буду

=mid(Fields!Description.Value,0,instr(Fields!Description.Value,"-")+1)

1 Ответов

Рейтинг:
5

Maciej Los

Вы пробовали использовать Left функция, а не Mid?
=Left(Fields!Description.Value, InStr(Fields!Description.Value, "-")-1)

Подробнее на сайте: Примеры выражений (построитель отчетов) - службы SQL Server Reporting Services (SSRS) | Microsoft Docs[^]

[РЕДАКТИРОВАТЬ]

Ричард Диминг написал (в комментарии):
То IIF функция вычисляет обе ветви во всех случаях, поэтому вы получаете ошибку.

Вам нужно будет использовать IIF в несколько ином положении:

=Left(Fields!Description.Value, IIF(InStr(Fields!Description.Value, "-") > 0, InStr(Fields!Description.Value, "-") - 1, Len(Fields!Description.Value)))

[/РЕДАКТИРОВАТЬ]


mohammed mqi

это дает мне #ошибку

Maciej Los

К сожалению, мой плохой. Обновлено (удалено 1 из функции Instr).

mohammed mqi

спасибо, это работает нормально, но у меня есть проблема, если нет тире"-" в моем слове это дает мне ошибку, как я могу этого избежать?
кроме того я пробую это и а также показать мне ошибку для слова не содержит тире

=IIf(InStr(Поля!Описание.Значение, "-") > 0,слева(поля!Описание.Значение, InStr(Поля!Описание.Значение, "-")-1),Поля!Описание.Ценность)

Maciej Los

Кажется, вы должны проверить свои данные. Извините, но у меня нет к ним доступа.

Richard Deeming

То IIF функция вычисляет обе ветви во всех случаях, поэтому вы получаете ошибку.

Вам нужно будет использовать IIF в несколько ином положении:

=Left(Fields!Description.Value, IIF(InStr(Fields!Description.Value, "-") > 0, InStr(Fields!Description.Value, "-") - 1, Len(Fields!Description.Value)))

mohammed mqi

спасибо Ричард Диминг это прекрасно работает это здорово
также Спасибо Мацей Лос

Maciej Los

Звучит как ответ...

Richard Deeming

Это всего лишь небольшая поправка к вашей. :)

Maciej Los

Спасибо, но я действительно думаю, что ваш комментарий стоит опубликовать в качестве ответа....
Итак, я обновил свой ответ... и я использовал ваш комментарий как часть ответа.
Любым способом...
- Спасибо, Ричард.

mohammed mqi

спасибо за редактирование вашего ответа