Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Instrucciones iif (https://www.clubdelphi.com/foros/showthread.php?t=91943)

GustavoCruz 07-06-2017 20:53:15

Instrucciones iif
 
Hola amigos, estoy tratando de migrar una base de datos de firebird a oracle, y me gustaría saber cómo puedo hacer esta consulta

Código SQL [-]
select s.segrips, s.segfecha, s.seghora,
iif(s.segnota is null,  '', s.segnota)||
iif((s.sistolica||'/'||s.distolica) is null,  '', ' Presión Arterial: '||s.sistolica||'/'||s.distolica||' mmgh')||
iif(s.fr is null,  '', ' Frecuencia Respiratoria: '||s.fr||' fr/min')||
iif(s.fc is null,  '', ' Frecuencia Cardiaca: '||s.fc||' fc/min')||
iif(s.peso is null,  '', ' Peso: '||s.peso||' Kg')||
iif(s.temp is null,  '', ' Temperatura: ' ||s.temp||'°C')||
iif((s.examenfisico is null) or (char_length(s.examenfisico) < 10) ,  '', ' Detalle Examen Físico: '||s.examenfisico)
,
iif(s.segnota is null,  '', s.segnota),
iif((s.examenfisico is null) or (char_length(s.examenfisico) < 10) ,  '', s.examenfisico),
iif((s.sistolica||'/'||s.distolica) is null,  '', ' Presión Arterial: '||s.sistolica||'/'||s.distolica||' mmgh')||
iif(s.fr is null,  '', ' Frecuencia Respiratoria: '||s.fr||' fr/min')||
iif(s.fc is null,  '', ' Frecuencia Cardiaca: '||s.fc||' fc/min')||
iif(s.peso is null,  '', ' Peso: '||s.peso||' Kg')||
iif(s.temp is null,  '', ' Temperatura: ' ||s.temp||'°C'),
s.segdxdes, s.ide,
pr.procc, pr.prorm, pr.pronombre, ep.espnombre, s.servicio, pr.firma
from segtable s, protable pr, esptable ep where
s.segprocodigo = pr.proidentidad and pr.proespecialidad = ep.espcodigo

sobre todo la parte donde hago esto:
Código SQL [-]
iif((s.examenfisico is null) or (char_length(s.examenfisico) < 10) ,  '', s.examenfisico)

Gracias de antemano por sus aportes


Gustavo Cruz

ecfisa 07-06-2017 22:18:54

Hola.
Cita:

Empezado por GustavoCruz (Mensaje 517882)
...
sobre todo la parte donde hago esto:
Código SQL [-]
iif((s.examenfisico is null) or (char_length(s.examenfisico) < 10) ,  '', s.examenfisico)

Intenta de este modo:
Código SQL [-]
CASE 
  WHEN (S.EXAMENFISICO IS NULL) OR (LENGTH(S.EXAMENFISICO) < 10) THEN '' 
  ELSE S.EXAMENFISICO 
END

Saludos :)

TiammatMX 07-06-2017 23:26:20

Cita:

Empezado por GustavoCruz (Mensaje 517882)
...sobre todo la parte donde hago esto:
Código SQL [-]
iif((s.examenfisico is null) or (char_length(s.examenfisico) < 10) ,  '', s.examenfisico)
...

La instrucción 'IIF' dudo que te la acepte cualquier SQL ANSI 92..., lo ideal, adecuado y permitido es usar la estructura CASE WHEN...THEN...ELSE END...

GustavoCruz 07-06-2017 23:57:46

Listo... gracias por sus aportes


Gustavo Cruz


La franja horaria es GMT +2. Ahora son las 03:01:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi