Нечувствительное к регистру предложение 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.