详细介绍了SYBASE iq和ORACLE中使用分析函数计算同期值以及常用计算函数的应用方法。文章内容涵盖了同期值的计算、累计值、TOP排序、日期格式转换、小数点位数控制、数据类型转换、大小写转换、去除空格、数学函数、日期函数等方面的知识。
-
同期值的计算
在SYBASE iq中,可以通过SELECT语句来计算同期值,例如:
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)
-
累计及同期累计值的计算
可以使用SUM() OVER()函数来计算累计值及同期累计值,例如:
SUM(Column) OVER(PARTITION BY Column1, Column2, Column3... ORDER BY Column4 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-
TOP排序
使用DENSE_RANK()函数来进行TOP排序,例如:
DENSE_RANK() OVER(PARTITION BY Column1, Column2 ORDER BY Column3 DESC)
-
日期格式转换
通过Dateformat()函数将日期字段转换为指定格式,例如:
Dateformat(日期字段, 'yyyymmdd')
-
返回指定小数点位数
可以使用Round()函数来将数值表达式圆整到指定精度,例如:
Round(convert(float, 字段类型), 2)
-
数据类型转换
使用Convert()函数将值从一种数据类型转换为另一种,例如:
Convert(datetype [(length)], expression)