EOMONTH()查詢日期數據所屬月數的最後一天; YEAR(COL)輸出日期數據的年份、month(col)輸出日期數據的月份; 查詢數據時in與exist的區別:in是先查詢條件,然後只查詢一次條件。而exists是先運行select語句,查詢出所有的數據以後在運行條件語句,多次查詢,查詢的次數 ...
EOMONTH()查詢日期數據所屬月數的最後一天;
YEAR(COL)輸出日期數據的年份、month(col)輸出日期數據的月份;
查詢數據時in與exist的區別:in是先查詢條件,然後只查詢一次條件。而exists是先運行select語句,查詢出所有的數據以後在運行條件語句,多次查詢,查詢的次數是table.length;
having跟where的區別:having 和where 都是用來篩選用的,having 是篩選組 而where是篩選記錄,另外having後面可以跟聚合函數,where不可以;
row_number視窗函數:賜予數據唯一的位次,row_number() over(條件)as 別名;
case when then else end:條件選擇語句;
cross/full join:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄;
left/right (outer)join:既包括符號連接表的匹配連接行,也包括左(右)連接表的所有行;
dateadd();在日期中添加或減去指定的時間間隔,DATEADD(datepart,number,date):date 參數是合法的日期表達式。number 是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。
DATEDIFF() 函數返回兩個日期之間的天數:DATEDIFF(datepart,startdate,enddate),startdate 和 enddate 參數是合法的日期表達式。
left join on後面添加條件跟where後添加條件的區別:where後面增加的條件是對臨時表生成後,進行過濾的。而on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。
用LEFTJOIN時,條件直接放ON後面,是先篩選後連接,條件放WHERE後面,是先連接後篩選