你以為你以為的就是你以為的嗎

xuexiaogang發表於2022-08-15

上週有個事情,一個開發寫的SQL,我有點接受不了。原始的是select   from t group by 後面跟了幾十列。我當時也是震驚到了,為什麼?他和我解釋了一下,我當時真是想罵人。我來用幾個表簡單說明一下。我這裡不用真實表和配置,我用個簡單的表舉例說明。比如說有一個表是流程表,大家可以看到有5個部門,每個部門做兩件事,發工資和發獎金。(這種喜聞樂見的事情大家能快速理解)。如圖1.當然真實的不是這麼簡單的列,他有幾十列。表的行數也遠超10行。

你以為你以為的就是你以為的嗎

圖1

需求是顯示一個部門有幾個配置的事件,多個事件用逗號連線起來。至於其他列也顯示出來,但是不重要,主要是看這幾個合併的。我初看這個想到說,這個SJ的欄位就不應該存在這裡,應該是一個部門表中直接存進去不就行了?如圖2.開發說是的,但是接手就這樣,之前也不知道誰想的這樣做。

你以為你以為的就是你以為的嗎

圖2

有的時候不是什麼人都能做設計,絕大多數人其實不應該去設計。就是實現就行了,設計的人一定要是懂資料庫的,才知道怎麼做最佳。

最後,廢了一會兒腦細胞給寫出來了。用到了第一次使用的listagg這個函式, 用了with as 的高階寫法。其實吧,這種就上圖2就全解決了,結果不專業的人留的坑,就這樣。用這兩個結合就避免了group by 幾十列的尷尬境地。

你以為你以為的就是你以為的嗎


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2910523/,如需轉載,請註明出處,否則將追究法律責任。

相關文章