黑马程序员_SQL总结二

来源:互联网 发布:阿里云 2g能做什么 编辑:程序博客网 时间:2024/05/16 17:08

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

数据库中相关函数的总结:

1、数字函数:

ABS():求绝对值;

ceiling();舍入到最大整数。如,3.33--->4

floor();舍入到最小整数。如,3.33--->3

round();四舍五入

2、字符串函数:

Len();计算字符串长度

lower();upper();转小写、转大写

ltrim();字符串左侧的空格去掉

rtrim();字符串右侧的空格去掉

substring(string,start_position,length):string参数为主字符串,start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度

3、日期函数

getdate():取得当前日期时间

dateadd(datepart,number,date):计增加以后的日期

datediff(datepart,startdate,enddate):计算两个日期之间的差额

例1:计算员工入职时间

select FName,FInDate,DateDiff(year,FInDate,getdate()) from T_employee

例2:统计不同工龄的员工人数

select datediff(year,FInDate,getdate()),count(*) from T_employee

group by datediff(year,FInDate,getdate())

4、类型转换函数

cast(expression as data_type)

convert(data_type,expression)

5、空值处理函数

isnull(expression,value):如果expression不为空则返回express,否则返回value

例如:select isnull (FName,'佚名')as 姓名 From T_employee

6、case函数用法

单值判断:相当于switch case

例如:select FName,(case FLevel when 1 Then 'vip客户'

when 2 Then ‘高级客户'

when 3 Then ‘普通客户'

else ‘客户类型错误'

end) as FLevel Name From T_Customer

练习:有一张表T_Scores,记录比赛成绩

Date               Name                  Score

2008-8-8          拜仁                     胜

2008-8-9          奇才                     胜

2008-8-9          湖人                     胜

2008-8-10        拜仁                     负

2008-8-8          拜仁                     负

2008-8-12        奇才                     胜

要求输出下面的格式:

Name 胜 负

拜仁     1    2

湖人     1    0

奇才      2   0

注意:在中文字符串前加N,比如N‘胜’

select Name,

sum(case score

when N‘胜' then 1

else 0

end)as 胜,

sum(case score

when N‘负' then 1

else 0

end)as 负

from T_Scores

group by Name

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/