[SQL][Quiz]簡單的數學計算題目

內部訓練題目

為了怕以後忘記題目,把今天早上在內部跟大家分享 T-SQL 的一些很容易搞錯的題目整理一下,有興趣的朋友不妨先想看看,然後再看看答案是否跟您所想的相同囉。

1. 「+」 號的應用:這個題目比較簡單,應該都會知道答案,主要是跟大家介紹 T-SQL 和 PL/SQL 在這裡的判斷規則不相同

select 7+2 A, '7'+'2' B, 7+'2' C

 

2. 數學計算:這個題目就比前面稍微難一點,通常都會搞錯欄位 C 的值。這個主要是以往我們在 ERP 內,會習慣去建立一些資料的換算規則,但有時卻因為沒有注意到資料型態,而導致的計算錯誤,因此就用這個題目來跟大家解釋一下。

select 7/2 A, 7/2.0   B, 7/2*1.0 C

 

3. Aggregate Function:是在 SQL 語法內很常被使用的,但如果資料內含有 NULL 的時候,有些時候就會沒有注意到;或者是有注意到 NULL 的狀況,卻又沒有注意到資料型態,就可能會有和所想要的結果有點不同喔。基本上欄位  A & B 的值大家應該都會對,但 C & E 卻是大家比較容易搞錯的

-- 產生範例資料
select * INTO #DATA from ( Values(1),(3),(3),(5),(5),(5),(NULL) ) DATA(Score)


-- Aggregate 函數範例
select COUNT(*) A, COUNT(Score) B, COUNT(DISTINCT Score) C, SUM(Score) D,AVG(Score) E
	from #DATA

 

不知道各位所想的和答案是否相同囉 :)