## 项目整体架构
抽数---加工宽表---加工remod表---加工接口表---提取数据
## 调度采用工具
kettle
## 加工宽表、remod表采用工具以及使用语言
Pgadmin
## 加工宽表、remod表涉及主要知识点
存储过程和函数
---函数最简实例
-- Function: func_replace_trim(text)
-- DROP FUNCTION func_replace_trim(text);
CREATE OR REPLACE FUNCTION func_replace_trim(in_column text)
RETURNS text AS
$BODY$
/*#############################################################
# 函数名称:FUNC_REPLACE_TRIM
# 功能介绍:将中文括号替换为英文括号并去除字段中的所有空格
# 编写人员:
# 编写日期:2017/12/28 22:29:24
# 传入参数:in_column
##############################################################
# 修改原因:
# 修改人员:
# 修改日期:
##############################################################*/
-- 1、变量定义
-- 接收传入参数的变量
DECLARE
v_column text;
BEGIN
v_column :=replace(replace(replace(in_column, '(', '('), ')', ')'),' ','');
-- 4、返回计算结果
Return v_column;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION func_replace_trim(text) OWNER TO actuarial;
## 加工宽表、remod表涉及细节知识点
(Pgadmin上SQL语法):
---取字段的整数部分,不四舍五入
trunc(取值字段)
trunc(123.4)-----123
trunc(123.6)-----123
NUMERIC格式编辑
NUMERIC(P,S) P的默认值是:38 S的默认值是:-84~127
numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。
---取字段的后几位:
select (cast(substr(to_timestamp('2017-11-10','YYYY-mm-dd'),1,4) as numeric)+1)||
substr(
cast(to_timestamp('2017-11-10','YYYY-mm-dd') as varchar)
,5,
length(cast(to_timestamp('2017-11-10','YYYY-mm-dd') as varchar))-5
);
---取当前时间的三种写法:
select now(),current_timestamp,clock_timestamp();
---截取年/月/日
select extract(year from now());
---两个日期之间相隔秒数:
select extract(epoch from ( to_timestamp('2017-10-5','YYYY-mm-dd')- to_timestamp('2017-08-3','YYYY-mm-dd') ));
---年龄函数
age( t2.polapplydate ,t6.birthday)【=t2.polapplydate-t6.birthday】
---向下取整
floor( ),trunc( )
---向上取整
ceil( )
---字符串转换为数值
select TO_NUMBER(TO_CHAR(to_timestamp('2017-10-5','YYYY-mm-dd'),'YYYY'),'999999')
---使用指定的替换值替换NULL
COALESCE(a.uwidea,3) 【续:MySQL中还可以用IFNULL(a.uwidea,3)】