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
Я использую 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 базы данных или компьютеры в этом отношении.
Есть ли способ поместить поиск по шаблону в запрос, который производит ввод параметров? ИЛИ есть какой-нибудь макрос, который я могу запрограммировать (помогите, пожалуйста!), Который сделает это для меня?
Примечание. Хотя поле записи поиска выполняет поиск совпадений в любом месте поля, это очень медленный метод поиска из-за большого количества контактов.
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
Не тестировал на hsql 2.2, но работает на hsql 1.8. Возможно, вы могли бы использовать нечто подобное - возможно, придется изменить concat для работы с ||.
SELECT * FROM "Contacts" WHERE UPPER("FirstName") LIKE CONCAT(UPPER(:FIRSTNAME),'%')