以下的函数分别在mssqlserver和oracle中进行测试,只列出常用的函数,不列出具体用法.
1,得到系统时间函数
mssqlserver getDate()
oracle sysDate
2, 提取串的组成部分
mssqlserver subString(coloum1,index,length)
oracle subStr(coloum1,index,length)
index的索引下标是从1开始的.
3,删除数据空格
mssqlserver Ltrim(),Rtrim()
oracle 相同
4,以下是常用的文本处理函数
oracle中字符长度用len().
5,日期处理函数
mssqlserver datePart('YYYY',datecoloum) dateName('YYYY',datecoloum);
oracle to_number(to_char(datecoloum,'YYYY')) 或to_date(str)
6,数值处理函数
abs() 取数的绝对值
cos() 取数的余弦
exp()一个数的指数值
pi() 圆周率
7,group by函数
group by函数是我认为比较难以掌握的一个函数,在使用group by函数时必须明确以下几点
a, group by子句可以包含任意数目的列,这使得能对分组进行嵌套,为数据分组提供更细致的控制.
b, 如果在group by子句中嵌套了分组,数据将在最后规定的分组上进行汇总.
c, group by子句中每个列都必须是检索列或有效的表达式(但不能是聚集函数),如果在select中使用表达式,则必须在groupby子句中指定相同的表达式,不能使用别名.
d, 除聚集计算语句外,select语句中的每个列都必须包含在group by子句中
e, 如果分组列中具有null,则null将作为一个分组返回,如果列中有多行分组,他们被分为一组.
f, group by子句必须出现在where子句后order by子句之前.
可以使用having子句对分组后的数据进行过滤,即组级别的过滤.
注:where和having的区别:
大部分句子中having都可以替代where子句,而区别是where是行级别的信息过滤,having是组级别的信息过滤.