如何將SQL寫成複雜邏輯 和構造資料

mcxiaoracle發表於2022-07-20

首先要建立一個概念,複雜的sql語句也是最基本的sql語句連線而成,所以最重要的是先要理清思路和邏輯,弄清自己要查哪幾張表,要用哪幾個欄位,表之間如何關聯,將這些弄清,然後由簡單到複雜,從最基本的sql寫起,透過找共同點,實現表關聯等。

0.確定表:涉及到那些表的資料

確定欄位:

確定根據業務需求連線方式等。-》分類迭代, 條件聚合


1.使用基本的查詢邏輯

2。多使用函式,如nvl 處理,聚集函式

nvl 處理: 只有待替換的整列值都為空(null), 才能替換成自己想要的結果值。而我的性別欄位有的值為null、有的值為Male、有的值為Female,所以用NVL()函式,沒有效果。


聚集函式:多用統計,均值等


3.連線方式是取對應的相同資料集可,沒有為空對等關係,但是左聯則是不一樣,以左為主,這是我下午錯的原因。

內聯方式,左連方式,滿連線等:

多表關係:

平級關係

等值連線必須有相同的數值,否則記錄為空,從這個角度來說join 還是很有優勢的。

一般的業務查詢都用這個吧。

層級關係:


  1. select swjg_dm,swjg_mc,sj_swjg_dm,swjg_level
  2. from extern_dm_swjg
  3. connect by prior swjg_dm = sj_swjg_dm
  4. start with sj_swjg_dm is null

存在管理機構上下級關係的時候用



當資料都是完整的話,等值連線都是可以的,一般說來也不錯,比較保險。



構造資料的方法:

主要還是分段累加,偽造資料,也麼其他方法。














推薦閱讀:

https://blog.csdn.net/jiahaowanhao/article/details/79581928?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-79581928-blog-120707909.pc_relevant_sortByAnswer&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-79581928-blog-120707909.pc_relevant_sortByAnswer&utm_relevant_index=5



推薦閱讀:

https://blog.csdn.net/itmyhome1990/article/details/16338637










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

相關文章