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