la eliminación de zwnj personaje de la cadena en postgres durante la instrucción de selección

StackOverflow https://stackoverflow.com/questions/4545255

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.

¿Fue útil?

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
scroll top