Можно ли поместить поиск по шаблону в запрос параметра в LibreOffice Base?

1666
user2088009

Я использую Base в LibreOffice 4.0 (все еще использую HSQL, который поставляется с Base, но смотрю на переход на HSQL 2.2.8), и я хотел бы сделать запрос, который запрашивает ввод параметров, например:

SELECT * FROM "Contacts" WHERE "FirstName" LIKE :FirstName 

и когда вы запускаете запрос, появляется окно с запросом ввода параметров для «FirstName»

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

Я пробовал несколько способов добавить подстановочный знак% в поиск параметров, и он не будет работать.

Я использовал SQL для создания запроса с подстановочными знаками (например SELECT * FROM "Contacts" WHERE "FirstName" LIKE 'W%'), но, к сожалению, он требует, чтобы этот клиент входил в SQL для этого запроса и изменял буквы, которые он ищет, и опять же, это не вариант для моего клиента, который также не владеет SQL базы данных или компьютеры в этом отношении.

Есть ли способ поместить поиск по шаблону в запрос, который производит ввод параметров? ИЛИ есть какой-нибудь макрос, который я могу запрограммировать (помогите, пожалуйста!), Который сделает это для меня?

Примечание. Хотя поле записи поиска выполняет поиск совпадений в любом месте поля, это очень медленный метод поиска из-за большого количества контактов.

0

2 ответа на вопрос

0
Gjordis

https://help.libreoffice.org/Common/Find_Record#Wildcard_expression

You can use vildcards:

? for single wildcard symbol

* for 0-n symbols

?arry can be Harry or Barry

B*b can be Bob or bebob

0
W_Whalley

Не тестировал на hsql 2.2, но работает на hsql 1.8. Возможно, вы могли бы использовать нечто подобное - возможно, придется изменить concat для работы с ||.

SELECT * FROM "Contacts" WHERE UPPER("FirstName") LIKE CONCAT(UPPER(:FIRSTNAME),'%')