Нечувствительное к регистру предложение LIKE в распространенном SQL - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь написать запрос в Pervasive SQL, который соответствует предложению "LIKE", но без учета регистра.

В качестве примера я хочу, чтобы следующий запрос совпадал с "john", "John" и "JOHN". В настоящее время учитывается регистр.

SELECT name FROM table WHERE name LIKE ?

В T-SQL я бы просто обернул UPPER вокруг обеих частей предложения WHERE, например:

SELECT name FROM table WHERE UPPER(name) LIKE UPPER(?)

Однако размещение любых функций справа от предложения WHERE завершается ошибкой с синтаксической ошибкой.

Как мне выполнить поиск без учета регистра?

1 Ответ

0 голосов
/ 22 января 2019

Единственный способ, которым я могу придумать, - это изменить регистр значения, которое появляется перед созданием оператора SQL. Примерно так выглядит код C #:

string value = "world";
sql = "SELECT name FROM table WHERE name LIKE = '" + value.ToUpper();

Или, еще лучше, используйте Параметры и установите свое значение, прежде чем устанавливать параметр.

Вы правы, если справа от функции LIKE появится синтаксическая ошибка. Вы можете сообщить об этом как об ошибке в Actian.

...