2014-01-13 20 views
0

如何在第一個列爲NULL時提取數據,第二列通過Join命令與另一個表連接。我們如何在第一個空值時切換列

Select 
competitions.name as "Competition", 
to_char(to_date(date,'DY Mon DD YYYY'),'D.MM.YYYY') as "Date Aired", 
case when home_team.name Is null then to_char(to_date(date,'DY Mon DD YYYY'),'MM-DD')||' '||video_jobs.event else 
to_char(to_date(date,'DY Mon DD YYYY'),'MM-DD')||' '||Away_team.name||' '||'@'||' '||home_team.name end as "Title", 
min(case when new_status_id = 19 then to_char(timestamp,'DD.MM.YY') end) as "Analysis Start date", 
min(case when new_status_id = 13 then to_char(timestamp,'DD.MM.YY') end) as "Analysis Complete", 
min(case when new_status_id = 9 then to_char(timestamp,'DD.MM.YY') end) as "Upload complete" 

from video_jobs 

Join job_statuses on video_jobs.status_id = job_statuses.id 
join teams as Home_team on video_jobs.home_team_id = home_team.id 
join teams as Away_team on video_jobs.away_team_id = Away_team.id 
Join competitions on video_jobs.competition_id = competitions.id 
Join video_job_status_history on video_jobs.id = video_job_status_history.video_job_id 

Where video_jobs.id = 163887 --and video_jobs.market_id=9 
-- and video_jobs.status_id != 32 

group by 
video_jobs.id, 
competitions.name, 
home_team.name, 
+0

您是否使用了ETL工具?如果是這樣,哪一個?如果沒有,你可以發佈你到目前爲止的SQL嗎?謝謝 –

+0

你使用的是mysql還是postgresql?他們不是一回事。請僅添加實際適用於您問題的標籤,而不是隨意抓取看起來相似的東西。此處的標籤具有特定的定義(您可以在輸入時顯示的描述中看到該標記,或者在此處通過標記的tagwiki顯示)。使用適當的標籤可以幫助您找到最能夠幫助您的人,並將其正確分類給將來在這裏尋求幫助的用戶。謝謝。 –

回答

1

你的問題還遠不清楚,但我相信你正在尋找​​3210功能,這是由兩個PostgresMySQL支持。

0

您可以使用COALESCE

SELECT COALESCE(t1.column1, t2.column2) AS unified_column 
FROM table1 AS t1 
JOIN table2 AS t2 USING (joincolumn) 
相關問題