Oracle SQL - max() avec des valeurs NULL

J'ai une table qui a une série de temps en fonction des événements, chacun étant lié avec un début et une date de fin. Pour la plus récente (en cours) de l'événement, la date de fin est NULLE. Im essayant de réduire le dédoublement des lignes et de n'afficher que le début au plus tôt de la date et de la dernière date de fin. Avec le NUL de l'être dans le champ de date, la ligne est ignoré. Je peux factice d'une date de fin de la valeur avec NVL(), mais qui sera la cause de la fin de devant de la logique de rechercher et de remplacer cette valeur.

Est-il de toute façon à obtenir un max() fonction pour trier NULL en tant que haut?

CREATE TABLE CONG_MEMBER_TERM
(
  CONG_MEMBER_TERM_ID  NUMBER(10)               NOT NULL,
  CHAMBER_CD           VARCHAR2(30 BYTE)        NOT NULL,
  CONG_MEMBER_ID       NUMBER(10)               NOT NULL,
  STATE_CD             CHAR(2 BYTE)             NOT NULL,
  DISTRICT             NUMBER(10),
  START_DT             TIMESTAMP(6) WITH TIME ZONE,
  END_DT               TIMESTAMP(6) WITH TIME ZONE
)

Cette requête fonctionne, mais les gouttes de la ligne où la date de fin est NULLE.

select CONG_MEMBER_ID, 
       district, 
       min(start_dt), 
       max(end_dt)
  from CONG_MEMBER_TERM
 where CONG_MEMBER_ID = 1716
 group by CONG_MEMBER_ID, district;

Cette requête correctifs, mais maintenant j'ai un "dummy" date de fin de la valeur(9/9/9999). Quelque chose que je préfère ne pas avoir à contourner.

select CONG_MEMBER_ID, 
       district, 
       min(start_dt), 
       max(nvl(end_dt, to_date('9/9/9999', 'mm/dd/yyyy')))
  from CONG_MEMBER_TERM
 where CONG_MEMBER_ID = 1716
 group by CONG_MEMBER_ID, district;

Grâce.

  • Vous avez beaucoup de questions, où vous n'avez pas accepté une réponse, vous obtiendrez plus d'intérêt à vos questions, si vous pouvez revenir en arrière et de noter les réponses correctes (en utilisant la tique contour à la gauche de la réponse).
  • Je n'étais même pas au courant de l'Accepter fonctionnalité. Allez revenir et de mettre à jour certains des plus anciens réponses.
InformationsquelleAutor nibeck | 2012-11-16