黑马程序员技术交流社区

标题: SQL的一些常用函数 [打印本页]

作者: 冰山上的来客    时间: 2013-11-5 10:21
标题: SQL的一些常用函数
ABC():求绝对值。

CEILING():舍入到最大整数。Ceiling:天花板

FLOOR():舍入到最小整数。Floor:地板

ROUND():四舍五入。Round(3.1525,2)

Len():字符串长度。Len('abcd')

LTRIM():去掉左边的空格。

RTRIM():去掉右边的空格。

LTRIM(RTRIM()):去掉两边的空格

SUBSTRING():截取自字符串。select SUBSTRING('abcdef00123',2,3)→bcd

GETDATE():取得当前日期时间。select Getdate()

DATEDIFF():计算时间差。select DateDiff(hh,getdate(),DateAdd(day,-5,Getdate()))

DATEPART():。取出日期特定部分。SELECT DatePart(year,getdate()) as 年

2.类型转换:

CAST:select cast('2010-10-10' as datetime)

CONVERT:select convert(datetime,'2009-09-09')

3.空值处理函数:

ISNULL(FName,'佚名'):如果为空值,则返回佚名,不为空则返回FName字段

例子:

SELECT ISNULL(FName,'佚名') as 姓名from T_Employee

4.CASE函数用法:

单值判断1:

CASE expression

WHEN value1 THEN returnvalue1

WHEN value2 THEN returnvalue2

WHEN value3 THEN returnvalue3

ELSE defaultreturnvalue

END

例子:

select FName,

(

case FLevel

when a then '普通客户'

when b then '会员'

when c then 'VIP'

else '未知客户类型'

end

) as 客户类型

From T_Customer

范围判断2:

select FName,

(

case

when FSalary<2000 then '低工资'

when FSalary>=2000 and FSalary<=5000 then '中等工资'

else '高工资'

end

) as 工资水平



from T_Employee

5.索引Index:

索引就像词典里的目录,可以提高检索的速度。

使用索引能提高查询效率,但是索引也要占据空间,而且添加、更新、删除数据的时候也要同步更新索引,因此会降低Insert、Update、Delete的速度。只在经常检索的字段上(where)创建索引。

注意:即使创建了索引,任有可能全盘扫描,如Like、函数、类型转换等。

6.Row_Number():加行号,取出某些行号,可用于分页

select * from

(

select Row_Number() over(order by FSalary DESC) as rownum,

FNumber,FName,FSalary,FAge From T_Employee

) as e1

where e1.rownum>=3 and e1.rownum<=5  

作者: lichao    时间: 2013-11-5 11:09
考试sql只考这里的内容吗?
作者: 冰山上的来客    时间: 2013-11-5 11:19
还有很多  我只是发了一点




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2