Hola losarcosnoch:
La respuesta que da el compañero libra es correcta si el campo es nulo entonces te debe poner el texto que mandas como parámetro, ahora bien, verifica que tu campo no tenga espacios en blanco, ya que si es así el campo obviamente NO ES NULO. podrías hacer algo como esto:
Código:
Select
case when rtrim(RFC) = '' then 'AXX010101000' else
isnull(RFC, 'AXX010101000') end
...
...
...
Aquí está el script completo de como sería el comportamiento
Código SQL:
Ver originalDECLARE @Tabla TABLE (id INT, RFC CHAR(13));
INSERT INTO @Tabla VALUES (1, 'AAAA111111XXX');
INSERT INTO @Tabla VALUES (2, ' ');
INSERT INTO @Tabla VALUES (3, ' ');
INSERT INTO @Tabla VALUES (4, NULL);
INSERT INTO @Tabla VALUES (5, ' -');
SELECT id,
CASE WHEN rtrim(RFC) = '' THEN 'AXX010101000' ELSE isnull(RFC, 'AXX010101000') END RFC
FROM @Tabla
En la tabla de ejemplo el registro 2 contiene un espacio en blanco, el registro 3 varios espacios en blanco, el registro 4 es nulo (como vez no es lo mismo espacio en blanco a nulo) y el registro 5 tiene espacios en blanco y al final un caracter. el resultado de esta consulta sería:
Código:
id RFC
----------- -------------
1 AAAA111111XXX
2 AXX010101000
3 AXX010101000
4 AXX010101000
5 -
es decir, para los casos 2, 3 y 4 pone el valor por defecto, mientras que en el resto deja los valores que tiene el campo.
Saludos
Leo.