1、 Sybase相关函数
1.1 同期值的计算
SELECT A.ID,A.CALC_MONTH,A.NUM,B.TQ_NUM
FROM (SELECT A.ID,A.CALC_MONTH,NUM FROM) A
LEFT JOIN (SELECT B.ID,B.CALC_MONTH,TQ_NUM FROM) B
ON A.ID=B.ID AND A.CALC_MONTH=(CONVERT(INT,SUBSTR(B.CALC_MONTH,1,4))+1)||SUBSTR (B.CALC_MONTH,5,2)
1.2 累计及同期累计值的计算
SUM(Column) OVER(PARTITION BY Column1,Column2, ORDER BY Column4 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) LJ_ Column –累计值
SUM(TQ_Column) OVER(PARTITION BY Column1,Column2, ORDER BY Column4 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) TQ_LJ_ Column –同期累计值
1.3 TOP排序
DENSE_RANK() OVER(PARTITION BY Column1,Column2 ORDER BY Column3 DESC) TOP_N---排名
1.4 日期转换格式
Dateformat(日期字段,'yyyymmdd'). 其中日期字段必须为日期类型,否则不能进行转换
例如:dateformat(getdate(),’yyyymm’)
1.5 返回指定小数点位数。
round(numeric_expr,int_expr) ----把数值表达式圆整到int_expr指定的精度
例如:Round(convert(float,字段类型),2)
1.6 转换函数convert
此函数把值从一种类型改变成另一种类型
convert(datetype [(length)],expression)
例如:select "Advance="+convert(char(12),advance) from titles
convert(datetype [(length)],expression)
例如:select "Advance="+convert(char(12),advance) from titles
1.7 大小写转换
upper(char_expr) 把char_expr转换成大写形式
lower(char_expr) 把char_expr转换成小写形式
lower(char_expr) 把char_expr转换成小写形式
1.8 删除空格
ltrim(char_expr) 删除头空
rtrim(char_expr) 删除尾空
rtrim(char_expr) 删除尾空
1.9 数学函数
abs(numeric_expr) 返回指定值的绝对值
ceiling(numeric_expr) 返回大于或等于指定值的最小整数
exp(float_expr) 给出指定值的指数值
floor(numeric_expr) 返回小于或等于指定值的最大整数
pi() 返回常数3.1415926
power(numeric_expr,power)返回numeric_expr的值给power的幂
rand([int_expr]) 返回0-1之间的随机浮点数,可指定基值
round(numeric_expr,int_expr)把数值表达式圆整到int_expr指定的精度
sign(int_expr) 返回正+1,零0或负-1
sqrt(float_expr) 返回指定值的平方根
exp(float_expr) 给出指定值的指数值
floor(numeric_expr) 返回小于或等于指定值的最大整数
pi() 返回常数3.1415926
power(numeric_expr,power)返回numeric_expr的值给power的幂
rand([int_expr]) 返回0-1之间的随机浮点数,可指定基值
round(numeric_expr,int_expr)把数值表达式圆整到int_expr指定的精度
sign(int_expr) 返回正+1,零0或负-1
sqrt(float_expr) 返回指定值的平方根
1.10 日期函数
getdate() 返回当前的系统日期和时间
datename(datepart,date_expr) 以字符串形式返回date_expr指定部分的值,转换成合适的名字
datepart(datepart,date_expr ) 作为整数返回date_expr值的指定部分
datename(datepart,date_expr) 以字符串形式返回date_expr指定部分的值,转换成合适的名字
datepart(datepart,date_expr ) 作为整数返回date_expr值的指定部分
datediff(datepart,date_expr1,date_expr2) 返回date_expr2-date_expr1,通过指定的datepart度量
dateadd(datepart,number,date_expr)返回日期,通过在date_expr上增加指定number的日期部件而产生的
dateadd(datepart,number,date_expr)返回日期,通过在date_expr上增加指定number的日期部件而产生的
1.11 ISNULL函数
isnull函数用指定的值代替查询栏或合计中的空值
例:select avg(isnull(total_order,$0)) from invoices
例:select avg(isnull(total_order,$0)) from invoices
以下为Sybase函数大全,集中了大部分操作中所用到的函数信息。
(详见:SVN\参考资料\ETL参考资料\Sybase参考资料\Sybase函数大全)
2、 Oracle相关函数
2.1 Oracle分析函数1
SUM
功能描述:该函数计算组中表达式的累积和。
MIN
功能描述:在一个组中的数据窗口中查表达式的最小值。
SAMPLE:下面例子中dept_min返回当前行所在部门的最小薪水值
MAXtrunc函数使用时间
功能描述:在一个组中的数据窗口中查表达式的最大值。
AVG
功能描述:用于计算一个组和数据窗口内表达式的平均值。
COUNT
功能描述:对一组内发生的事情进行累积计数,如果指定*或一些非空常数,count将对所有行计数,如果指定一个表达式,count返回表达式非空赋值的计数,当有相同值出现时,这些相等的值都会被纳入被计算的值;可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数。
2.2 Oracle分析函数2
RANK:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置 同组内跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
DENSE_RANK:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置 同组内连续排序,有两个第二名时仍然跟着第三名。
FIRST:从DENSE_RANK返回的集合中取出排在最前面的一个值的行
LAST:从DENSE_RANK返回的集合中取出排在最后面的一个值的行
FIRST_VALUE:返回组中数据窗口的第一个值
LAST_VALUE:返回组中数据窗口的最后一个值。
LAG:可以访问结果集中的其它行而不用进行自连接
LEAD:LEAD与LAG相反,LEAD可以访问组中当前行之后的行
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论