今天假日到公司加班,
因客戶在準備「匯入資料」想直接照原本的Query出來的結果,供我做匯入。
而因這樣的匯入資料,對我來說,還要判斷Insert Or Update。
所以,想到 SQL 有「多筆Row 合併為 一筆Row」 這做法 (忘了實際SQL寫法是什麼@@~)
因客戶這是 Informix ,所以查這一類的資料
Google:http://goo.gl/eFNqlC
使用資料:http://goo.gl/uVJkWP
執行結果:(記下這篇就是怕以後忘了)
=============================
2014/06/20 -
真的是失憶了,完全忘了自已有寫過這類這麼神奇的Code ,
要回想還真是看不懂程式呀!
關鍵字:multiset
最後會組出這類文字:
MULTISET{ROW('891046'),ROW('930660'),ROW('910033'),ROW('702269')}
再一個一個把它 Replace 掉
因客戶在準備「匯入資料」想直接照原本的Query出來的結果,供我做匯入。
而因這樣的匯入資料,對我來說,還要判斷Insert Or Update。
所以,想到 SQL 有「多筆Row 合併為 一筆Row」 這做法 (忘了實際SQL寫法是什麼@@~)
因客戶這是 Informix ,所以查這一類的資料
Google:http://goo.gl/eFNqlC
使用資料:http://goo.gl/uVJkWP
執行結果:(記下這篇就是怕以後忘了)
--原關聯的資料 select sc_role.irole, sc_account_role_relation.iaccount FROM sc_role INNER JOIN sc_account_role_relation ON sc_role.irole = sc_account_role_relation.irole WHERE sc_role.irole='R01-301' --組出來的結果 select sc_role.irole, replace(replace(replace(replace(replace( multiset (select sc_account_role_relation.iaccount from sc_account_role_relation where sc_account_role_relation.irole = sc_role.irole)::lvarchar , 'MULTISET{',''), 'ROW(''',''),''')',''),'}',''),',','//') AS Account from sc_role WHERE sc_role.irole='R01-301'
=============================
2014/06/20 -
真的是失憶了,完全忘了自已有寫過這類這麼神奇的Code ,
要回想還真是看不懂程式呀!
關鍵字:multiset
--sql概念 multiset (一段multi row 的資料)::lvarchar
最後會組出這類文字:
MULTISET{ROW('891046'),ROW('930660'),ROW('910033'),ROW('702269')}
再一個一個把它 Replace 掉
0 意見 :
張貼留言