Замена нескольких строк в Apache Drill с использованием метода SQL REGEXP_REPLACE

Я использую запрос sql для данных json. Но в одном из моих полей json, похоже, мало символов, например. '\n' & '^' и т. д., которые я хочу заменить на лету.

В настоящее время я дважды вызываю REGEXP_REPLACE, как показано ниже:

SELECT REGEXP_REPLACE(REGEXP_REPLACE('aaaa\nbbbb^cccc', '\\n', ' '), '\^', ' ') FROM (VALUES(1));

Как я могу сделать это, используя метод REGEXP_REPLACE только один раз?


person Lokesh Jain    schedule 27.11.2018    source источник


Ответы (1)


Ниже должно работать -

SELECT REGEXP_REPLACE('aaaa\nbbbb^cccc', '\\n|\^', ' ') FROM (VALUES(1));

Но обратите внимание, что в этом случае персонаж, на которого вы заменяете, будет одинаковым для всех. Если вам нужно заменить разными символами, вам нужно будет использовать свой подход, как показано ниже:

SELECT REGEXP_REPLACE(REGEXP_REPLACE('aaaa\nbbbb^cccc', '\\n', 'X'), '\^', 'Y') FROM (VALUES(1));
person Data Drive    schedule 27.11.2018