聲明我的情況下,聲明似乎是不正確的,我不知道什麼是錯的。它爲我創建時間和更新時間記錄提供了相同的日期。 這裏是我的數據的外觀:情況當與聲明
T1:
ID create_time
1 08/09/2016 07:30:20AM
T2:
ID update_time
1
1 08/15/2016 09:41:46AM
我期待下面的內容:創建
ID TimeStamp
1 08/09/2016 07:30:20AM
1 08/15/2016 09:41:46AM
但是我的代碼返回值時間爲2條記錄。它看起來像這樣:
ID TimeStamp
1 08/09/2016 07:30:20AM
1 08/09/2016 07:30:20AM
select t1.id, t1.desc,
Case
WHEN t1.create_time IS NOT NULL
THEN t1.create_time
WHEN t2.update_time IS NOT NULL
THEN t2.update_time
END AS "TimeStamp"
from t1, t2
where t1.id=t2.id
AND (t1.create_time BETWEEN TO_DATE ('01-AUG-2016 00:00:00',
'dd-mon-yyyy HH24:Mi:SS')
AND TO_DATE ('31-AUG-2016 23:59:59',
'dd-mon-yyyy HH24:Mi:SS')
OR ( t2.update_time
BETWEEN TO_DATE ('01-AUG-2016 00:00:00',
'dd-mon-yyyy HH24:Mi:SS')
AND TO_DATE ('31-AUG-2016 23:59:59',
'dd-mon-yyyy HH24:Mi:SS')
)
)
我還需要根據創建/更新時間將每個記錄標記爲單獨列中的新建/更新。我這樣做的情況下使用時,如下圖所示:
CASE
WHEN (t1.create_time IS NOT NULL AND t2.update_time IS NULL)
THEN 'New'
WHEN t2.update_time IS NOT NULL
THEN 'Update'
END AS "Type"
但這似乎帶來重複如下:
ID timestamp類型
1 2016年8月9日的新
1 2016年8月9日更新
1 08/15/2016新
1 08/15/2016更新
你知道有些時候老甲骨文語法連接無法避免......例如REFRESH實施FAST物化視圖中的錯誤阻止如果創建視圖的查詢包含ANSI快速提神連接。自從我學到這些,我說「在大多數情況下」而不是「永遠」。 :-) – mathguy