欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

工作中常用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、

相关标签: postgresql