Aquí creo que te sobra el primer par de ||
Código SQL
[-]left join a on || + '0' + || a.id=b.identificador
Debería ser así:
Código SQL
[-]left join a on '0' + || a.id = b.identificador
De todos modos, si a.id es mayor que 9, al concatenarle un 0 delante será demasiado grande como para caber en un char(2).
Luego estarás comparando '010' con '10'.
Supongo que una mejor opción (siempre que los valores de b.identificador sean SIEMPRE numéricos) es comparar números.
Código SQL
[-]left join a on a.id = cast(b.identificador as integer)