porque en tus when no usas '01','02'?? si estas haciendo substring entonces estas comparando con cadenas, y si pones 01 es un entero y cuando comparas entero contra un string en un case algo como esto
Código SQL:
Ver originalSELECT CASE WHEN campo=1 THEN 'si' ELSE 'no' END AS campo2 FROM tabla
Marca error deberias verificar tus tipos de datos en tus cases...