SQLite permite NUL en strings: un comportamiento que confunde
Nul Characters in Strings in SQLite
SQLite permite caracteres NUL (0x00) en medio de las cadenas de texto almacenadas. Sin embargo, funciones como length() y quote(), y la CLI, ignoran todo lo que sigue al primer NUL, lo que puede inducir a error: una consulta como WHERE b='abc' no encuentra filas aunque la salida parezca mostrar 'abc'. El artículo explica cómo detectar estos NULs (CAST a BLOB o instr()) y cómo eliminarlos con substr().
SQLite sabe que la columna t1.b realmente contiene una cadena de 7 caracteres, y la cadena de 7 caracteres 'abc'||char(0)||'xyz' no es igual a la cadena de 3 caracteres 'abc', por lo que no se devuelven filas.