Как бороться с точкой с запятой ";"в сравнении строк? - PullRequest
1 голос
/ 15 мая 2019

Я пишу запрос Hive, и мне нужно сравнить PIN-код (столбец) со строковым значением.Пин-код зашифрован, а зашифрованное значение содержит специальные символы.Мне нужно выбрать все строки с PIN-кодом, содержащие это зашифрованное значение.

Например, select * from prod_db.prod_table where pin='ab;xzh[Ge';

Это приводит к тому, что ; читается как разделитель и вызывает ошибку <EOF>.

Есть ли способ решить эту проблему?Спасибо!

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Замените точку с запятой \073 или попробуйте двойную косую черту \\;, чтобы избежать точки с запятой:

select * from prod_db.prod_table where pin='ab\073xzh[Ge';

или

select * from prod_db.prod_table where pin='ab\\;xzh[Ge';
0 голосов
/ 15 мая 2019

Если это только одно значение, которое вы пытаетесь сравнить, используйте '\' для экранирования специального символа.

select * from prod_db.prod_table where pin='ab\;xzh[Ge';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...