2012-05-23 9 views
17

¿Cómo se puede verificar NULL en una declaración CASE, cuando se usa un Scalar Function?¿Cómo comprobar NULL en una sentencia CASE con una función escalar?

Mi búsqueda original era ... pero falla

SELECT CASE dbo.fnCarerResponse('') 
      WHEN NULL THEN 'Pass' 
      ELSE 'Fail' 
     END 

leí la pregunta acerca del uso de SOIS NULL, al igual que ...

SELECT CASE dbo.fnCarerResponse('') IS NULL 
      WHEN NULL THEN 'Pass' 
      ELSE 'Fail' 
     END   

pero esto da el error incorrect syntax near the keyword is

¿Puede obtener un Scalar Function en el CASE?

Respuesta

24

Está utilizando el estilo incorrecto de CASE - es necesario utilizar CASE WHEN <expression> THEN no CASE <expression> WHEN <expression> then:

SELECT CASE 
WHEN dbo.fnCarerResponse('') IS NULL 
THEN 'Pass' 
ELSE 'Fail' 
END 
+0

DOH ... gracias por el puntero – SteveC

6
SELECT CASE 
     WHEN dbo.fnCarerResponse('') IS NULL 
     THEN 'Pass' 
     ELSE 'Fail' 
     END 
+0

DOH ... gracias por el puntero – SteveC

4
SELECT CASE 
      WHEN dbo.fnCarerResponse('') is NULL THEN 'Pass' 
      ELSE 'Fail' 
     END 
+0

DOH ... gracias por el puntero – SteveC

Cuestiones relacionadas