sql >> Base de Datos >  >> RDS >> PostgreSQL

Comparar varchar con char

No es un error en absoluto.
Convertir el literal de cadena 'ab ' a character , esto es lo que obtienes:

a

Por documentación:

character sin especificador de longitud es equivalente a character(1) .

'a'::character(1) luego será obligado a varchar (character varying ) para probar la igualdad con 'a'::varchar o 'ab'::varchar y produce TRUE o FALSE respectivamente.

Básicamente, casi no hay una buena razón para usar character en absoluto . Es un tipo heredado que ha dejado de ser útil. Solo usa text o varchar .

  • ¿Alguna desventaja de usar el tipo de datos "texto" para almacenar cadenas?