MSSQL-各種常用涵式

MSSQL-各種常用涵式

欄位 AS 別名
用於欄位名稱相同時可以暫時換成別的名稱,也可以用於簡化名稱
例如:

  • f.name as pswd_name,
  • FORM mf_tw as a

issnull(欄位,值) 如果欄位內容為null, 顯示值 例如:ISNULL(a.cls_id,’F’)


cast(欄位 as 型態) 將欄位的型態轉換成指定型態 例如CAST(e.SPC AS varchar(255))

CASE WHIEN(判斷式一)THEN值一
WHIEN(判斷式二)THEN值二
END

用於判斷內容並顯示其值

CASE WHEN (isnull(a.qty_rtn,0)!=a.qty AND (a.close_id!=’T’ or a.close_id is null)) THEN ‘F’ ELSE ‘Y’ END


row_number() 顯示資料列的序號,可以搭配over 做資料分割(分群)+排序
例如 row_number() over (order by est_dd,os_no,itm)


LEN(欄位) 計算內容值長度

  • 英文字、數字所佔的位元組:1
  • 中文字所佔的位元組:2

例:

SELECT LEN(‘你好,Hello!’),DATALENGTH(‘你好,Hello!’)

結果分別為=>9,12


LOWER(值OR欄位) 轉為小寫
例如: LOWER(‘TO SMALL’)


REPLACE(欄位,值一, 值二) 將該欄位內值一轉為值二

REPLACE(‘SQL TutoTial’, ‘SQL, ‘SQLLLL’);
SQLLLL TutoTial


ISNUMERIC 判斷值的型態是否為數字 true 返回1 false 返回 0
範例:ISNUMERIC(4567)
結果: 1


DATENAME(目標 , 時間值) 取得該時間值 的目標

  • year, yyyy, yy = Year
  • quarter, qq, q = Quarter
  • month, mm, m = month
  • dayofyear = Day of the year
  • day, dy, y = Day
  • week, ww, wk = Week
  • weekday, dw, w = Weekday
  • hour, hh = hour
  • minute, mi, n = Minute
  • second, ss, s = Second
  • millisecond, ms = Millisecond

DATENAME(year, ‘2020/01/25’)
結果:2020