PDA

Ver la Versión Completa : Algo como NVL o COALESCE


jwmoreira
05-03-2005, 22:44:06
Hola a todos, necesito una sentencia en sql server parecida a NVL de oracle o COALESCE de Firebird.

NVL( campo, siEsNulo)
COALESCE( campo, siEsNulo )

Saludos,

Jorge.

Fernando
07-03-2005, 18:00:53
select * from tabla
where campo is null

select * from tabla
where campo is not null

jwmoreira
07-03-2005, 20:04:23
Hola Fernando, parece que me he explicado mal, cuando envío un parámetro lo valido si es nulo o no y asigno otra variable, ej:

ORACLE:
select campo1, campo2 from tabla
where campo1 = NVL( :parámetro, '9999' )

FIREBIRD:
select campo1, campo2 from tabla
where campo1 = COALESCE( :parámetro, '9999' )

Como ves NVL y COALESCE sirven para validar si el parámetro es cualquier variable sea nula le asigne el valor a continuación, en este caso '99999', lo mismo deseo hacer en SQL SERVER, pero no se la sentencia.

Saludos,
Jorge.

Fernando
07-03-2005, 21:15:49
intenta con esto:

select campo1, campo2 from tabla
where iif(campo1 is null,parámetro, '9999' )

Saludos.

__hector
07-03-2005, 21:57:48
Tambien la funcion isnull(), funciona creo que exactamente igual.

Caso:


declare @campo varchar
declare @resultado varchar
SET @campo = null

SET @resultado = isnull(@campo, 'valor')

-- @resultado sera igual a valor

SET @campo = 'otrovalor'

SET @resultado = isnull(@campo, 'valor')

-- @resultado sera igual a 'otrovalor'