Таблица: как создать точную формулу соответствия для строки поиска соответствия по шаблону?

#sql #tableau-api

#sql #tableau-api

Вопрос:

Я пытаюсь создать строку поиска соответствия по шаблону в Tableau, которая будет возвращать только точные совпадения с текстом, введенным в строке поиска.

Я начал с:

 IF (CONTAINS([Title]," " [Search Parameter] " ")) THEN TRUE ELSE FALSE END
 

Затем быстро понял, что это возвращает только те значения, которые имеют пробел в начале и в конце поискового слова / фразы. Он также показывал только заголовки, содержащие 2 пробела, когда строка поиска была пустой. Затем я попробовал это:

 IF (CONTAINS([Title]," " [Search Parameter] " ")) OR 

STARTSWITH([Title],[Search Parameter] " ") OR 

ENDSWITH([Title]," " [Search Parameter])) THEN TRUE ELSE FALSE END
 

Похоже, что он не возвращает никаких значений с пробелом ни до, ни после поискового запроса. Условия поиска сильно различаются, поэтому я не видел отличного способа использовать формулу регулярных выражений.

Я также хотел бы добавить еще 2 строки поиска, одна из которых будет возвращать только значения, начинающиеся с текста поиска, а другая, которая будет возвращать только значения, заканчивающиеся текстом поиска. В идеале, ни один из этих поисков не будет мешать друг другу, и строки поиска, которые начинаются с / заканчиваются, могут использоваться одновременно.

Я ценю любую помощь, которую я могу получить с этим. Заранее спасибо!

Комментарии:

1. как ваши данные в поле заголовка, простые 2 или 3 строки, будут в порядке, чтобы знать, что вы делаете

2. Поле заголовка содержит более 20 000 строк, которые выглядят примерно так: расскажите нам о своей личности, и мы подберем вам телешоу The English vocab quiz Насколько хорошо вы знаете мировую историю? Можете ли вы идентифицировать эти фильмы? Ни в одной из строк нет какой-либо согласованной информации. Надеюсь, это поможет лучше объяснить ситуацию. Для моего параметра поиска установлено значение: Тип даты: Строка Допустимые значения: Все

3. хорошо, если вы добавите дату в качестве поиска, то каков ваш ожидаемый результат?

4. Если я правильно понимаю ваш вопрос, я бы ожидал, что результатом будет каждая строка с этой точной датой в том же точном формате, который я написал в строке поиска.

Ответ №1:

попробуйте это:

 IF FIND([Title],[Search Parameter]) <> 0
THEN TRUE
ELSE FALSE
END
 

Find задаст позицию символа и вернет целое число в найденном и 0, если ничего не найдено, здесь вы не указываете начальные или конечные пробелы.

Комментарии:

1. @d_kennetz добавил объяснение