la eliminación de zwnj personaje de la cadena en postgres durante la instrucción de selección
-
13-10-2019 - |
Pregunta
La cadena utf codificada contiene Zwnj (cero anchura no Joiner) en el extremo y se almacena en la base de datos. ¿Es posible eliminar ese carácter durante la instrucción de selección. Probé trim (), pero no funciona.
Solución
CREATE TABLE test (x text);
INSERT INTO test VALUES (E'abc');
INSERT INTO test VALUES (E'foo\u200C'); -- U+200C = ZERO WIDTH NON-JOINER
SELECT x, octet_length(x) FROM test;
x │ octet_length
─────┼──────────────
abc │ 3
foo │ 6
(2 rows)
CREATE TABLE test2 AS SELECT replace(x, E'\u200C', '') AS x FROM test;
SELECT x, octet_length(x) FROM test2;
x │ octet_length
─────┼──────────────
abc │ 3
foo │ 3
(2 rows)
Otros consejos
Es necesario utilizar replace(your_column, 'Zwnj','')
en lugar de trim ()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow