Как сделать предикат Vertica IN нечувствительным к регистру? - PullRequest
1 голос
/ 21 марта 2019

Я хотел бы сделать предикат IN моего запроса Vertica нечувствительным к регистру.

select username from user where username in('Jim');

Я бы хотел, чтобы приведенный выше запрос возвращал записи типа:
JIM
Jim
JiM

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Нет способа сделать in нечувствительным к регистру. Вы можете связать воедино кучу ILIKE операторов , но лучшим способом было бы переписать ваш запрос, используя строковую функцию LOWER, и поместить все элементы в предложении IN в нижний регистр.

SELECT username FROM user WHERE LOWER(username) IN ('jim');
0 голосов
/ 01 апреля 2019

В следующем примере запроса игнорируется регистр:

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';
...