#sql #vertica #case-insensitive
#sql #vertica #без учета регистра
Вопрос:
Я хотел бы сделать IN
предикат моего запроса Vertica без учета регистра.
select username from user where username in('Jim');
Я хотел бы, чтобы приведенный выше запрос возвращал записи типа:
ДЖИМ
Джим
Джим
Ответ №1:
Не существует способа сделать in
нечувствительным к регистру. Вы могли бы связать воедино кучу ILIKE
операторов, но лучшим способом было бы переписать ваш запрос с помощью LOWER
строковой функции и поместить все элементы в IN
предложении в нижнем регистре.
SELECT username FROM user WHERE LOWER(username) IN ('jim');
Ответ №2:
Следующий пример запроса игнорирует регистр:
DROP TABLE IF EXISTS test_case CASCADE;
CREATE TABLE test_case(f1 varchar(50));
COPY test_case(f1) FROM STDIN;
JIM
Jim
JiM
TestValue
.
SELECT * FROM test_case
WHERE f1 ilike 'Jim';