Нечувствительное к регистру предложение LIKE в распространенном SQL

Я пытаюсь написать запрос в 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 ответ

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

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

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

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

Другие вопросы по тегам