SQL備忘記錄

2021-08-18 06:50:06 字數 1139 閱讀 9975

一.with as的含義 

with as短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義乙個sql片斷,該sql片斷會被整個sql語句所用到。有的時候,是為了讓sql語句的可讀性更高些,也有可能是在union all的不同部分,作為提供資料的部分。 

特別對於union all比較有用。因為union all的每個部分可能相同,但是如果每個部分都去執行一遍的話,則成本太高,所以可以使用with as短語,則只要執行一遍即可。如果with as短語所定義的表名被呼叫兩次以上,則優化器會自動將with as短語所獲取的資料放入乙個temp表裡,如果只是被呼叫一次,則不會。而提示materialize則是強制將with as短語裡的資料放入乙個全域性臨時表裡。很多查詢通過這種方法都可以提高速度;

二 .merge into:判斷b表和a表是否滿足on中條件,如果滿足則用b表去更新a表,如果不滿足,則將b表資料插入a表

merge 

into

a_merge a using (

select

b.aid,b.

name

,b.year

,b.city 

from

b_merge b) c   

on(a.id=c.aid)   

when

matched 

then

update

seta.

name

=c.name

where

c.city != 

'江西'

when

notmatched 

then

insert

(a.id,a.

name

,a.year

) values

(c.aid,c.

name

,c.year

) where

c.city=

'江西'

;  commit

;  三.

insert into select 

insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

sql備忘記錄

spark sql 當前日期 current date 顯示當前日期 年月日時分秒 year,month,day,hour,minute,second 例 year 2018 09 20 2018 第幾周,第幾天 weekofyear,dayofyear weekofyear x xx xx mys...

C 學習 備忘記錄 二

1 malloc free 與 new delete的區別 首先malloc free 屬於c的一組庫函式,new delete 屬於c 的一組運算子。功能都是開闢和釋放記憶體空間。但是區別在於。new 和delete運算子 在開闢空間的時候會呼叫類的建構函式和析構函式。而malloc free 則...

備忘 Ubuntu忘記密碼

1.重新啟動系統,按esc鍵進入boot menu,選擇advanced options for ubuntu,按下 enter 進入,選擇recovery mode,注意這時候不要按下回車鍵。2.按下 e 鍵進入命令編輯狀態,到 linux boot vmlinuz ro recovery nom...