記兩則SQL程式設計中的坑

2021-07-23 17:37:34 字數 659 閱讀 7884

近期寫sql提取資料時,踩了兩個坑。稍做回顧總結,以期對其他人能有所幫助。

concat用於合併多個字串,很早以前,一直以為如果輸入的引數中有null值,concat會自動忽視之。直到有一次的業務需求開發中,需要合併商品的多個類目資訊,最後發現總是有很多類目為空的商品,排查明細後,發現了真相:如果輸入concat的眾多引數中,只要有乙個值為null,最終結果就為null  !

我們在mysql中復現這個過程:

解決方案:在輸入變數時,先用coalesce函式進行空值處理,如下:

假設表a與表b可分別通過a.item_id與b.item_id進行關聯,但是a.item_id是字串,而b.item_id是整型,如果我們明知道這兩個item_id是同乙個事物,可以關聯得上。同時,整型與數值內容的字串往往也可以直接做比較,就會直接在join時,用 a.item_id = b.item_id 這樣的方式去關聯。但筆者在阿里雲的odps平台上,是遇到過這樣做會丟失記錄的情況,所以最好是在關聯時,用cast函式將鍵值轉換為同一種型別後再進行等值關聯。

CUDA程式設計注意事項兩則

最近開始使用cuda做一些演算法,在這個過程中遇到了一些小問題,記在blog中方便以後查閱。對演算法的執行時間進行測試的時候,要注意考慮cuda執行時庫初始化的時間 cuda的執行時庫在它的第乙個函式被呼叫的時候初始化執行時庫和裝置等內容,因此第乙個函式的執行時間包含了初始化的時間 在我們的伺服器上...

兩則與ONT有關的故障排除

1 摘機後無撥號音,phone2指示燈一直閃爍 無論話機是否摘機 phone2指示燈一直閃爍,是ont到話機的 線故障造成的,更換 線後phone2燈在話機掛機時不再閃爍。但此時話機摘機仍然沒有撥號音,是因為把話機連線到了錯誤的埠所致。把話機連線到phone1埠後解決問題。2 通過路由器無法上網,o...

兩則爵士鼓的基礎練習

爵士鼓技巧不會太多,但它絕對會要求基礎,比如單跳雙跳復合跳,每天要堅持四個小時以上的練習,不管你現在技術多麼的好 1.姿勢座正以後,先右手打擊8下,左手後打擊8下,然後變6下.4.3.2,然後變為單跳,剛開始要慢,然後逐漸加速度,在打擊時要時刻聽著你兩手打擊出來的音色是否協調,讓別人聽著你像是用乙個...