IIF

27/04/2006 - 01:15 por Juan Huachaca Gomez | Informe spam
Amigos tengo este store, pq no funciona ??? el comando iif me aparece este
mensaje

Servidor: mensaje 195, nivel 15, estado 10, procedimiento
PE_SP_VER_DOMICILIOS_MENSUAL, línea 12
'IsEmpty' no es un nombre de función reconocido.



ALTER PROCEDURE PE_SP_VER_DOMICILIOS_MENSUAL
@domicilio int,
@mes Char(3),
@ano char(4)
AS

SELECT domicilio = d.iddomicilio,
telefono = IIF(IsEmpty(d.telefoneresidencial),d.telefoneresidencial,"No
Tiene"),
ciudad = b.descricao,
grupo = c.descricao
FROM domicilios d, cidade b, grupo c
WHERE d.iddomicilio = @domicilio
AND d.idcidade = b.idcidade
AND d.idgrupo = c.idgrupo


Salu2

Juan Huachaca Gomez
MSN: j_huachaca79@yahoo.es
Telf. (00511) 7809892

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
27/04/2006 - 01:14 | Informe spam
Hola, no existe en SQL el IFF, en su lugar esta el CASE


Salu2
-
[Microsoft MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Juan Huachaca Gomez" escribió en el mensaje
news:%
Amigos tengo este store, pq no funciona ??? el comando iif me aparece este
mensaje

Servidor: mensaje 195, nivel 15, estado 10, procedimiento
PE_SP_VER_DOMICILIOS_MENSUAL, línea 12
'IsEmpty' no es un nombre de función reconocido.



ALTER PROCEDURE PE_SP_VER_DOMICILIOS_MENSUAL
@domicilio int,
@mes Char(3),
@ano char(4)
AS

SELECT domicilio = d.iddomicilio,
telefono = IIF(IsEmpty(d.telefoneresidencial),d.telefoneresidencial,"No
Tiene"),
ciudad = b.descricao,
grupo = c.descricao
FROM domicilios d, cidade b, grupo c
WHERE d.iddomicilio = @domicilio
AND d.idcidade = b.idcidade
AND d.idgrupo = c.idgrupo


Salu2

Juan Huachaca Gomez
MSN:
Telf. (00511) 7809892


Respuesta Responder a este mensaje
#2 Alejandro Mesa
27/04/2006 - 15:06 | Informe spam
Juan,

Como menciono Maxi, debes usar la expresion "case".

IIF(IsEmpty(d.telefoneresidencial),d.telefoneresidencial,"No Tiene")



case when len(isnull(d.telefoneresidencial, '')) = 0 then "No Tiene" else
d.telefoneresidencial end

Otra cosa, te sugiero que no uses mas el viejo estilo de union de las tablas
(join) y usa el estilo ANSI (inner join, left outer join, right outer join).

Microsoft dejara de soportar el viejo estilo muy pronto (creo que no se
admite en sql server 2005, al menos que la db tenga una compatibilidad
anterior a la 2005).

FROM domicilios d, cidade b, grupo c
WHERE d.iddomicilio = @domicilio
AND d.idcidade = b.idcidade
AND d.idgrupo = c.idgrupo



select ...
FROM
domicilios d inner join cidade b on d.idcidade = b.idcidade
inner join grupo c on d.idgrupo = c.idgrupo
WHERE
d.iddomicilio = @domicilio


AMB

"Juan Huachaca Gomez" wrote:

Amigos tengo este store, pq no funciona ??? el comando iif me aparece este
mensaje

Servidor: mensaje 195, nivel 15, estado 10, procedimiento
PE_SP_VER_DOMICILIOS_MENSUAL, línea 12
'IsEmpty' no es un nombre de función reconocido.



ALTER PROCEDURE PE_SP_VER_DOMICILIOS_MENSUAL
@domicilio int,
@mes Char(3),
@ano char(4)
AS

SELECT domicilio = d.iddomicilio,
telefono = IIF(IsEmpty(d.telefoneresidencial),d.telefoneresidencial,"No
Tiene"),
ciudad = b.descricao,
grupo = c.descricao
FROM domicilios d, cidade b, grupo c
WHERE d.iddomicilio = @domicilio
AND d.idcidade = b.idcidade
AND d.idgrupo = c.idgrupo


Salu2

Juan Huachaca Gomez
MSN:
Telf. (00511) 7809892




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida