SQL相关函数语句的使用

1.聚合函数 
MAX():求最大值 
MIN(): 求最小值
AVG(): 求平均值
SUM():   求和

2.ABS():求绝对值
select ABS(-3) ;
--   3;
   
  天花板→CEILING():舍入到最大整数。3.33将被舍入为4
2.89将被舍入3.-3.61将被舍入为-3  

 地板→FLOOR():舍入到最小整数,3.33→3,2.89→2,-3.61→-4

ROUND:四舍五入

3.字符串函数
LEN():计算字符串长度


LOWER()、UPPER():转小写大写


LTRIM()、RTRIM():去掉字符串左边和右边的空格
select LTRIM('  e   ');  --e  
select RTRIM('  e   ');  --   e
去掉两边空格
selectLTRIM(RTRIM('   e    '))  --e


SUBSTRING(string、start_position、length):参数string为主字符串,
start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度,sekect substring(‘abcdef111',2,3)
-- bcd


日期函数
GETDATE():取得当前日期时间


DATEADD(datepart,number,date),计算增加以后的日期。
select dateADD ( day ,- 3 , getdate ())  --往前推三天
select DATEadd ( hh , 1 , getdate ())  --小时增加1

参数date为待计算的日期
参数number为增量
参数datepart为计量单位,可选值见备注 、
DATEADD(day,3,date) 计算日期date的三天后的日期,
而DATEADD(month,-8,date)为计算日期date的8个月前的日期


DATEDIFF(detepart,startdate,enddate): 计算两个日期之间的差额
,datepart为计量单位,可取值参考DATEADD
select datediff ( hh , getdate (), dateadd ( day ,- 3 , getdate ()))
--   -72
select datediff ( year , findate , getdate ()), count (*) From T_Employee
group by datediff ( year , Findate , getdate ())


DATEPART(datepart,date):返回一个日期的特定部分
select datepart ( year , Findate ), count (*) from T_Employee
group by DATEPART ( year , findate )
select Datepart ( year , cast ( '2008-08-08' as datetime )) --2008

类型转换函数
cast(experssion AS data_type)
convert(data_type,expression)
select cast ( '123' as int ), cast ( '2008-08-08' as datetime ),
convert ( datetime , '2009-09-09' ), convert ( varchar ( 50 ), 123 )

空值判断
ISNULL   ()  fname是否为空,如果为空返回哈哈,不为空返回fname的值
select isnull ( Fname , '哈哈' ) as 姓名 From T_Employee



CASE函数用法   类似与C#中的switch case

select FName ,
( case Flevel
when 1 then '普通客户'
when 2 then '会员'
when 3 then 'VIP'
else '未知客户类型'
end )
as 客户类型
from vip

case 也可以用作if else类型

select FName ,
(
case
when FSalary < 2000 then '低收入'
when FSalary >= 2000 and FSAlary <= 5000 then '中等收入'
else '高收入'
end
)
as 收入水平
from T_Employee

TOP 的用法  和 取什么到什么之间的用法
TOP  是取前几个
select top TNumber , datediff ( ss , tstart , tend ) as 通话时间 from



这个是取什么到什么范围之内
Test2 order by 通话时间 desc
select * from
( Select * from T_Employee
where FNumber not in ( Select top FNumber from T_Employee order by FSalary desc )
) as e1
where e1 . FAge >= 20 and e1 . FAge <= 30
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值