SQLSERVER 学习笔记(二)SQL函数
ABS()?求绝对值 select?(-3) CEILING舍入到最大整数 3.33?舍入到 -3.33?舍入到-3 (-3.33FLOOR舍入到最小整数 3.33?->?3 -3.33?->?-4 ROUND四舍五入?两个参数,第一个是对象第二个是精度 3.33?->?3 3.66?->?4 (3.66); ???->4 (3.1415926);?->3.142 LEN计算字符串长度 ('HELLO'); select?FName()?from?T_Employ; 注意:?字符串NULL不知道)的长度也为不知道(NULL) LOWER()转小写 UPPER转大写 空格处理函数 LTRIM()??去掉左空格 RTRIM去掉右空格 ());?两边空格都去掉 '???bb?????'),0)">'?????bb???????')),128)">))) 字符串截断函数 SUBSTRINGEXPRESSSTRATLENTH)?? 显示FName中从第二个开始长度为的子字符串。 日期函数 GETDATE取得当前日期 DATEADDdatepartnumberdate计算增加以后的日期 date为待计算的日期,number为增量。 datepart的取法: year?yy?yyyy?年份 quarter?qq?q?季度 month?mm?m?月份 dayofyear?dyy?年度第几天 day?dd?d?日 week?wk?ww?当年第几周 hour?hh?小时 minute?mi?n?分 second?ss?s?秒 millonsecond?ms?毫秒 ?month'121212');??//减个月 ?DAY());//?减天 ?HH());//加小时 ? ? ?DATEDIFFstartend)??计算两个日期的差额end?-?) ?(),128)">()))?计算多少个小时 ? ?要求算出员工入职年数 ?FInDateYEAR())?as?'入职年数'?;?计算多少年 ?按年限分组并统计每组人数 ?COUNT(*)?'统计人数'?())'入职年数'? ?T_Employ?group?by?()); ? ?DATEPART返回一个日期的特定部分 ?SSgetdate()); ?根据入职年份进行分组 ?(*),128)">) ??T_Employ? ??类型转换函数 castexpression?as?date_type) convertexpression) CAST'123'?int'2008-08-08'?datetimeCONVERT'2009-09-09'varchar(50); RIGHT(n取得表达式的后n位 select?FIdCardNumberT_TempEmployee;?取得后三位?得到的是字符串) (RIGHT(INTEGERT_TempEmployee?取得后三位并转换为整数形式 )+1?T_TempEmployee? INT))/2?'2013-04-19'?)); 空值处理函数 ISNULLexpression1,expression2如果expression1非NULL则返回expression1'佚名'case函数用法 case?i when?1?then?'aaa'?//?aaa?是函数的返回值 when?2?'bbb'?bbb else?'ccc' end create?table?T_CustomerFName?(20FLevel?insert?into?FLevelvalues'tom''jerry''lucy'FName?( FLevel '普通客户' '会员' when?3?'VIP会员' '未知客户类型' end '客户类型' 范围值的判断?这时case后为空 case? when?FSalary<2000?'低收入' >=2000?and?<=5000?'中收入' '高收入' 收入水平 ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |