SQL中常用的函數

聚合函數

avg(): 函數返回組中各值的平均數

sum():函數返回組中各值之和

1
select sum(money) from cash

count():函數返回匹配指定條件的行數

count(column_name) 函數返回指定列的值的數目(NULL 不計入)

count(*) 函數返回表中的記錄數

count(DISTINCT column_name) 函數返回指定列的不同值的數目

 

查詢範圍——orders表:

 

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
select 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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章