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 |