聚合函數
avg(): 函數返回組中各值的平均數
sum():函數返回組中各值之和
1 | select sum (money) from cash |
count():函數返回匹配指定條件的行數
count(column_name) 函數返回指定列的值的數目(NULL 不計入)
count(*) 函數返回表中的記錄數
count(DISTINCT column_name) 函數返回指定列的不同值的數目
查詢範圍——orders表:
O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Carter 3 2008/10/05 700 Bush 4 2008/09/28 300 Bush 5 2008/08/06 2000 Adams 6 2008/07/21 100 Carter
1234567891011121314select
count
(*) N
'Bush的訂單總數'
from
orders
where
cumstomer =
'Bush'
執行結果:3
select
count
(customer)
from
orders
where
OrderPrice >= 1000
執行結果:3
select
count
(
distinct
customer)
from
orders
where
OrderPrice <= 1000
執行結果:2
Max():函數返回表達式的最大值
Min():函數返回表達式的最小值
日期函數
getdate():函數返回當前時間
1 2 3 | select getdate() 函數返回:2012-04-09 21:29:25.493 |
datepart(datepart, date):函數返回時間的某一部分
datepart的有效值如下:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鐘 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
1 | select datepart(hh,getdate()) |
dateadd(datepart,number,date):函數在日期中添加或減去指定的時間間隔 date 參數是合法的日期表達式。number 是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。
1 | select dateadd(dd,3,getdate()) |
datediff(datepart, startdate, enddate):函數返回兩個日期之間的天數
1 2 3 | select datediff(dd, '2012-4-9' , '2012-4-10' ) 執行結果:1 |
Day():函數返回日期的”日”部分month():函數返回日期的”月”部分year():函數返回日期的”年”部分
1 | |
數學函數
abs():函數返回絕對值ceiling():函數返回大於等於該數的最小整數floor():函數返回小於等於該數的最大整數rand():函數返回一個0-1之間的隨機數round(value,decimals):函數將一個數value舍入精確到小數點後decimals位小數
1 2 3 | select round(3.1234,3) 執行結果:3.123 |
字符串函數charindex(expression1, expression2[ , start] )函數返回子串在目標串中最先出現位置的index,expression1爲子串,expression2爲目標串
1 2 3 | select charindex( 'ab' , 'asdabdd' ) 執行結果:4 |
left(expression, number):函數返回目標串的左邊指定長度的子串
1 2 3 | select left ( '黎明' ,1) 執行結果:黎 |
right(expression, number):函數返回目標串的右邊指定長度的子串
ltrim(expression):函數去除字符串左邊的空格
rtrim(expression):函數去除字符串右邊的空格
1 2 3 4 5 | 去除字符串兩邊的空格 select ltrim(rtrim( ' 春哥 ' )) 執行結果:春哥 |
substring(expression, start, length):函數返回目標串的一個子串,start爲起始地址,length爲子串的長度
1 2 3 | select substring ( '不管你信不信,反正我信了' ,4,3) 執行結果:信不信 |
upper():函數將目標串中的所有字符轉化爲大寫字母
lower():函數將目標串中的所有字符轉化爲小寫字母
1 2 3 4 5 | select upper ( 'Just Do It' ) select lower ( 'Just Do It' ) 執行結果:JUST DO IT just do it |
其他函數isnull(expression, value): 如果expression是null的話,則返回value值,否則返回expression
1 | select isnull ( name ,N '匿名' ) 姓名 from T_Persons |
newid():創建uniqueindentifer類型的唯一值,常用於生成主鍵,每次返回的值都不一樣
1 2 | insert into T_persons(id, name ,age) values (newid(),N '小強' ,22) |