我有一個包含一系列基於時間的事件的表,每個事件都以開始和結束日期進行綁定。對於最近的(當前)事件,結束日期爲NULL。我試圖摺疊重複的行,只顯示最早的開始日期和最新的結束日期。在日期字段中有NULL的情況下,該行被忽略。我可以用NVL()虛擬一個結束日期值,但是這會導致前端邏輯搜索並替換該值。具有NULL值的Oracle SQL - max()
反正有沒有max()函數將NULL排序爲高?
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
)
該查詢有效,但刪除結束日期爲NULL的行。
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;
這個查詢解決了,但現在我有一個「虛擬」結束日期值(9/9/9999)。我不想編碼的東西。
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;
謝謝。
你有很多的問題,你有沒有接受一個答案,你會得到你的問題更感興趣,如果你可以回去和標記答案正確的是(使用答案左側的勾號輪廓)。 – bendataclear
我甚至沒有意識到接受功能。將返回並更新一些較舊的答案。 – nibeck