sqlserver 基本函数

select * from  result
select len('Color') --得到长度 result: 5
select reverse('ABCDEF')--反转函数result: FEDCBA
select substring('abcdefg',4,6)--截取函数表示从第4位开始截取到第6位 result: defg
select replace('where you from','where','how')--替换函数把where替换 result:how you from
select replace('abcdaa','a','b')--把a替换掉 result:bbcdbb
--stuff函数删除指定长度的字符并在指定的起始点插入另一组字符。
select stuff('Where is you company',1,5,'Neusoft')--删除的长度为5 位置从1开始 result:Neusoft is you company
select stuff('Where is you company',1,2,'Neusoft')--删除的长度为2位置从1开始 result:Neusoftere is you company
---round函数(四舍五入函数)
select round(65.654,2) --表示小数据点的后两位四舍五入result:65.650
select round(67.655321,2)--result:67.660000
select ROUND(12.555, 2);--result:12.560
SELECT ROUND(12.7555 ,2)--resultL:12.7600

---绝对值函数
select abs(-66) --result:66
select abs(0) --result:0

--取整函数
---floor函数返回小于或等于所给数字表达式的最大整数
--ceiling函数返回大于或等于所给数字表达式的最小整数。
select floor(65.154) ---result:65
select ceiling(65.14)---result:66
select floor(65.10)--result:65
select ceiling(65.10)--result:66

---日期函数
--sqlserver有两种数据类型来存储日期和时间数
--datetime和smalldatetime
--datetime数据类型保存介于1753年1月1日和9999年12月31日之间的数据
--smalldatetime从1900年1月1日到2079年6月6日
--返回当前系统日期和时间
select  getdate() -- result:2012-04-27 16:50:31.723
--根据指定的间隔和数字返回一个新日期
--一年的时间时隔
select dateadd(yy,-1,'4/2/2008') --2007-04-02 00:00:00.000
---    q表示一个季度即增加3个月
select dateadd(q,1,'4/2/2008') --2008-07-02 00:00:00.000
--增加一天
select dateadd(d,1,'4/2/2008') --2008-04-03 00:00:00.000
---代码     描述
/*
yy或者yyy    年
qq或者q     季度
mm或者m      月
dy或y        年中第几天
dd或d        天
wk或者      周
dw或w       星期几
hh          小时
mi或者n     分钟
ss或s       秒
ms          毫秒           
*/
---表示20120401和当前时间差多少天
select datediff(day,'20120401',getdate())

select datename(month,getdate()) --获得当前月份
select datename(day,getdate()) --获得当前天数(指某个月的天数)
select datename(year,getdate())--获得当前年数

--现百几点几分
select datepart(hh,getdate()) --获得现在是几点
select datepart(mi,getdate())--当前的分钟
select day(getdate())  --天数
select year(getdate()) --年份
select month(getdate())---月

---转换函数
cast (列名 表达式 as 数据类型)
 
convert (数据类型 列名 as 表达式 )

select 2008+'年举办奥运'--无法运行  --result:2008  举行奥运会
select cast(2008as char(6))+'举行奥运会'
select convert(char(6),2009)+'年经济危机'  --result :2009  年经济危机
select convert(varchar(20),getdate(),101)  --result:04/27/2012

-- 一些通用函数
isnull(表达式1,表达式2) --函数功能是空值转换
nullif(表达式1,表达式2)--两个参数的比较
select nullif('aa','aa') --相等返回null
select nullif('aa','bb')--不相等返回第一个参数
COALESCE()
用法 Select  COALESCE(null,null,null,'2') 返回2
作用 返回其参数中第一个非空表达式

---case表达式

select resultfenshu,
(case resultfenshu
    when 10 then'低'
    when 20 then'低2'
    else '好一点点' end
    )from result


    
    case 列 when 列值 then 输出说明
    
--    row_number()函数

select row_number()over()

select * from result
select resultfenshu, row_number() over(order by psd )as row from result

select userid,[time],amount,(case  when(amount>5000) then '高消费' else '低消费' end)as '消费程度'
from TAccConsume

posted @ 2012-04-27 17:55  KyrieYang  阅读(919)  评论(0编辑  收藏  举报