工作中常用SQL代码整理
程序员文章站
2022-07-14 10:44:10
...
1.引用现在的时间且用于时间运算:
(now()::timestamp)::date -("日期"::timestamp)::date) =1
2.分区排序,用于查找第n次出现的东东,还可以用于去重
select row_number() over(partition by 客户 order by 账号 desc) as row from ...
3.会有增量表、全量表、历史表(需分区否则跑死)
习惯用select count(1) from B group by A having count(1) > 1
判断A是否主键
4.截取字段函数 substring(A,1,4)截取第一位到第四位,substr也可以用
5.用union来写或语句,缺点就是表结构要一样
or 需要扩个括号where(a >1 or b >1)
6,和in一样的写法
and (cus_type = any(array ['AAAB':: character varying,'AAAC'::character varying,'AAAD'::character varying]::text[]))
其中array数组函数postgresql----数组类型和函数
7.用于做报表统计
select round(count( case when 分类 = 1 then 客户 end),0) as 分类1户数,
round(sum( case when 分类 = 1 then 金额 end ),2)/10000 as 分类1总金额,
round(count( case when 分类 = 2 then 客户 end),0) as 分类2户数,
round(sum( case when 分类 = 2 then 金额 end ),2)/10000 as 分类2总金额
from 表a
8.、转换数字的写法 :: numeric
9.、gp中 为 like '%某某%'
rlike 的写法(需整理!!!)
spark中 为 like '*某某*'
10、 拼接和替换replace(name1,' ','') || replace(name2,' ','')
(替换效果为去了所有空格,去首尾空格用trim(col)
去前空格RTrim(col)
去后空格LTrim(col)
)
(拼接可以与’['符号进行拼接)
11、计算工作日时,可以上网找一张节假日表关联进行打标后统计
12、判断如果col字段为空的时候赋值0NVL(col,0)
13、
上一篇: 工作中常用javascript代码整理
下一篇: Linux线程安全