突然收到個需求,要求匯出乙份資料:
1、如處理詳情資料多行資料合併為一行
2、型別字段:是,否,其他,為否的值沒有入口,需指定為否
主表,附屬的型別表,系統表,處理記錄表,產品表
select
*from test_case ic where id=
11007750
;--主表
select
*from test_case_business_type where relevance_id=
11007750
--型別表
select
*from test_case_subsystem ic where case_id=
11007750
;--系統表
select
*from test_case_handle_detail ic where case_id=
11007750
;--處理記錄表
select
*from test_event_belong_detail where event_id=
11007750
--產品表
子系統,產品,處理步驟,型別都有可能乙個主表資料 對應多行;如乙個主資料中包含多個子系統,多個產品,多個處理步驟,多個型別,用group_concat 函式處理;
型別為否時,不存在關聯資料,預設賦值為否,使用 coalesce 函式處理,有點像nvl;
--合併多行資料
select group_concat(is_financial_bus separator ','
)from test_case_business_type where relevance_id=
11000411
;--給null賦值,這個值有 是否其他,3個選項,否為空
select ic.id,
coalesce
(icbt.is_financial_bus,
'否')
from test_case ic left
join test_case_business_type icbt on ic.id=icbt.relevance_id;
--產品
select group_concat(ieb.event_belong_name separator ',')as
'產品'
from test_event_belong ieb, test_event_belong_detail iebd where ieb.id=iebd.belong_id and iebd.event_id=
11007750
;--子系統
select group_concat(ics.system_en_name separator ',')as
'子系統'
from test_case_subsystem ics where ics.case_id=68;
--處理詳情
select group_concat(ichd.operate_detail separator ',')as
'處理詳情'
from test_case_handle_detail ichd where ichd.case_id=
11007917
;
group_concat
1、功能:將group
by產生的同乙個分組中的值連線起來,返回乙個字串結果。
2、語法:group_concat(
[distinct
] 要連線的字段 [
order
by 排序字段 asc
/desc
][separator '分隔符'])
說明:通過使用distinct可以排除重複值;如果希望對結果中的值進行排序,可以使用order
by子句;separator是乙個字串值,預設為乙個逗號。
coalesce
coalesce
(value
,…)是乙個可變參函式,可以使用多個引數。
作用:接受多個引數,返回第乙個不為null的引數,如果所有引數都為null,此函式返回null;當它使用2個引數時,和ifnull函式作用相同。
這個引數使用的場合為:假如某個字段預設是null,你想其返回的不是null,而是比如0或其他值,可以使用這個函式
select ic.id as
'id'
,ic.event_title as
'標題',(
select basekey_name from test_event_basekey where id=ic.event_status)
as'狀態'
,ic.event_create_date as
'上報時間'
,ic.event_desc as
'上報內容',(
select group_concat(ichd.operate_detail separator ','
)from test_case_handle_detail ichd where ichd.case_id=ic.id)
as'處理詳情',(
select group_concat(ics.system_en_name separator ','
)from test_case_subsystem ics where ics.case_id=ic.id)
as'子系統',(
select group_concat(ieb.event_belong_name separator ','
)from test_event_belong ieb, test_event_belong_detail iebd where ieb.id=iebd.belong_id and iebd.event_id=ic.id)
as'產品'
,ic.handler_team_id as
'處理組'
,ic.event_handler as
'處理人'
,coalesce((
select group_concat(is_financial_bus separator ','
)from test_case_business_type where relevance_id=ic.id)
,'否')as
'金融業務'
from test_case ic ;
突如其來的感冒
最近學校裡感冒的似乎比較多.本來我一直還好好的,昨天上午起來的時候有點鼻塞,到了下午已經變得很嚴重了,並伴隨著咳嗽與頭暈.這個感冒實在來的太 不是時候了,我今明兩天連續兩場考試,而且還基本沒看過書.今天早上吃了顆感冒藥,結果一上午昏昏沉成的,在自習室睡了會,看書的時候大腦cpu根本不運轉.下午考試時...
突如其來的考試
突如其來的考試,本來是安排的晚上進行一階段的結束考試的,但是很不幸我們早上就開始了。為什麼說突如其來呢,其實是自己沒準備好,本來這事兒都提前說了幾天了,是自己執行力不到位,沒複習複習。剛開始的時候,感覺題還行,做著做著就開始懷疑人生了,在電腦面前一頓操作猛如虎,點了run之後才感覺自己就是個弟弟,這...
突如其來的電話面試
昨天晚上在公司吃完飯後回到工位準備加班,習慣性的拿手機看了一下情況,乙個未接來電,看下號碼0571 我還說誰會給我打長途呢,於是又回撥了乙個,就聽到乙個甜美的聲音 歡迎致電阿里巴巴 當時心情那個激動啊,手都發抖了,可是不知道分機號,於是掛掉了,等吧。不一會兒,又打來乙個,於是聊開了,做乙個 面試。過...