资源描述:
《系统函数与进阶资料查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章系統函數與進階資料查詢1Chapter9Outline9-1:決定性與非決定性函數9-2:常用的數學函數9-3:常用的時間函數9-4:常用的字串函數9-5:集總函數9-6:使用視覺方式設計查詢9-7:本章總結29-1決定性與非決定性函數決定性(Deterministic)函數:針對一組特定的輸入值,如果函數一直傳回相同的結果,則函數具完全決定性;反之,如果函數傳回的值並不能確定,則為非決定性(Non-deterministic)函數。例如:對於字串函數中的LEFT(‘ABCDE’,2)而言,每次執行都一定會傳回‘AB’=>決定
2、性函數取得當天日期的函數GETDATE(),因不保證每次都會傳回相同的日期=>非決定性函數非決定決定性函數在SQLServer中可能會限制其可使用之處非決定性函數也會被效能最佳化所忽略,因為系統為了嚴格確保正確性,因此會略過某些計劃重新調整順序的步驟39-2常用的數學函數數學函數中除了RAND(亂數)之外,其餘的數學函數都是具決定性的函數。ABS函數:傳回一數值的絕對值ABS(numeric_expression)numeric_expression:為一數字運算式,可以為數字,可以是欄位,也可以為運算式,例如:3*3-8。CEIL
3、ING函數:傳回一大於或等於一數字運算式的最小整數CEILING(numeric_expression)selectceiling(123.45),ceiling(-123.45),ceiling(0.0)124,-123,049-2常用的數學函數FLOOR函數:傳回一小於或等於一數字運算式的最大整數FLOOR(numeric_expression)selectfloor(123.45),floor(-123.45),floor(123)PI函數:傳回圓周率PI的數值PI()selectpi()123,-124,1233.14159
4、26535897959-2常用的數學函數ROUND函數:以宣告的精確度傳回一數字運算式的近似值ROUND(numeric_expression,length[,function])length:如果length為一正整數,numeric_expression將四捨五入(Round)至length長度的小數位數;如果length為一負整數,numeric_expression將四捨五入至小數點左邊算起length長度的位數。function:如果本引數為0或從缺,則執行四捨五入;如果本引數為非0,則執行切除(Truncate),即無條
5、件捨去之意。selectround(748.58,1),round(748.58,-1),round(748.58,-2),round(748.58,1,0),round(748.58,-1,1)748.60,750.00,700.00,748.60,740.0069-2常用的數學函數SQUARE函數:傳回一數字運算式的平方值SQUARE(float_expression)float_expression:為一有理數的運算式Selectsquare(2.0)=>4.0SQRT函數:傳回一數字運算式的平方根SQRT(float_exp
6、ression)selectsqrt(4.0)=>2.0RAND函數:傳回0到1的隨機float值RAND([seed])seed:這是一個提供初始值的整數的運算式,如果未指定seed,則SQLServer便會隨機指派一個初始值。但只要指定初始值之後,以後傳回的結果都會相同79-3常用的時間函數DAY函數:傳回宣告日期的日數DAY(date)date為一datetime或smalldatetime型態的運算式selectday('03/12/2007')=>12MONTH函數:傳回宣告日期的月份MONTH(date)YEAR函數:傳
7、回宣告日期的年份YEAR(date)selectyear('03/12/2007')=>200789-3常用的時間函數GETDATE函數與GETUTCDATE:傳回系統目前的日期與時間/傳回國際標準時間或格林威治標準時間的日期與時間99-3常用的時間函數DATENAME函數:傳回代表指定日期的指定日期部分之字元字串,例如:年份、月份、星期、…等。DATENAME(datepart,date)datepart:傳入各種引數,如yy,qq,mm,dy,dd,wk…等date:為一datetime或smalldatetime型態的運算式s
8、electdatename(weekday,'2007/03/19'),datename(dayofyear,'2007/03/19')星期一,78109-3常用的時間函數DATEADD函數:根據在指定日期中加上某種間隔來傳回新的da