sql >> Base de Datos >  >> RDS >> Oracle

SQL:¿por qué rellenar espacios al comparar caracteres?

Estás confundiendo los diferentes tipos de personajes y lo que está pasando. Cuando ejecutas:

SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

No se agregan espacios "a cada fila en ALGUNA_TABLA". La única pregunta es el ancho de los resultados. Este ancho lo establecen las propiedades de las columnas en ALGUNA_TABLA, no lo que aparece en la cláusula WHERE.

Si su NOMBRE_CLIENTE se declara como un valor char(x), entonces la cadena debe tener esa longitud. Digamos que es char(10) y le asignas 'Popeye'. El valor tiene seis caracteres y esto debe ser rellenado a 10, de alguna manera. El estándar SQL es rellenar en el lado derecho, haciendo que el valor 'Popeye ' .

Si desea cadenas de longitud variable, utilice varchar o varchar2.