行轉列--Excel和資料庫的完美結合
入職到現在已經有一段時間了,除了不斷完善新功能外,線上運維也是一項很重要的任務,每天都需要佔用一
定量的時間來處理,這時候怎樣高效準確的來解決這些問題是很值得考慮的。
今天客服人員給我反饋了這樣一個線上問題,詳情見下圖:
子表中以上員工code值在主表中找不到記錄。假設現在脫離實際環境,我們簡單的把這些員工的資訊從子表中刪
除,這樣一堆資料先思考一下你會怎麼進行處理呢??
下面分享一下我的解決方案。如果你有更好的想法,歡迎在下方評論中進行指教或郵件給我分享一下:
這裡我僅以部分資料為例再現一下吧,簡單思路就是先利用excel表格進行行轉列操作,然後在SQL語句中用
IN做批處理。下面是具體操作過程:
1、複製以上員工code,貼上到excel表格A1中
、
2、點選選單欄[資料]——>[分列]
3、資料分列共3步,在第2步中設定分隔符號標準,這裡是“,”,注意中英格式,在資料預覽中可以看到分隔後的效
果圖。下一步完成。
分列後的員工code
4、複製資料行,在空白格內右擊滑鼠在彈出的快捷選單中找到--[選擇性貼上],在展開的內容中選擇[轉置]
行轉列後的效果圖:
5、到這裡還沒有結束哦,繼續看。在資料列的左右分別插入一行,注意:先輸入一個空格,然後英文格式下
“ '”,左右同理。
6、將上面的單元格資料複製到資料庫中,用[ctrl+H]全部替換掉'....'之間的空格,然後用IN做批量刪除。
DELETE TestA WHERE EmployeeCode IN (
'05c41401-0dc0-4690-bb00-848f2a99448b ',
'064149f7-202b-44b0-81ec-1b2c8e745082 ',
'0858876b-7222-4be8-8d4d-49b4f5dcaf7d ',
'0a7d458f-3344-4340-8b0e-04220aaececd ',
'0e0cea72-0156-40fe-82c6-a7cc36ae7c8f ',
'0fca3044-cc3f-48a6-a7b0-2474d4388ecc ',
'14521fa3-79c7-4c3b-bcd1-0dd814588665 ',
'15ebb333-a773-a1fd-41c2-46135933d1b9 ',
'1624b1f7-e03e-4b97-8b19-e38198cbb644 ',
'1685227e-0385-46ae-93b0-ea3031685e71 ',
'22ba9ec1-ca83-46be-a3ae-ef82f52ea3d8 ',
'2377bc30-1bb8-4126-a621-6f8ec2e9d8de '
) AND VersionEndTime IS NULL
到這裡問題就解決完了。Excel和資料庫的結合使用,大大降低了我們的工作量。如果此時你有更好的想法或建
議,隨時歡迎來分享!
關鍵字:行轉列 批處理 大資料
--------------------------------------------思想總結--------------------------------------------------
技術誠可貴,思想價更高。一個優秀的程式設計師,高效的開發不是靠時間堆砌出來的,思想上移行動下移,才會
在程式設計的道路上越走越遠,越爬越高。