个人博客 个人博客

2020 记录精彩的程序人生

目录
PostgreSql 有关left连接表为 null,使用 like 的解决及日期null的搜索,split_part 切割函数使用
/  

PostgreSql 有关left连接表为 null,使用 like 的解决及日期null的搜索,split_part 切割函数使用

coalesce 函数对日期的处理

如果birthday不为空,执行birthday值。
如果birthday为空,执行coalesce中的'1900-1-1',当前开始日期条件。
具体实现 SQL 语句如下:
注意:coalesce中的'1900-1-1' 要和 between '1900-1-1' 一样。

coalesce(birthday,'1900-1-1')  between '1900-1-1' and '2020-4-1'

coalesce 函数对left连接表 like null的处理

coalesce(pm.no,'') like '%%'

split_part 切割函数

select * table order by split_part(column,'-',2):: numeric;

例:
value =“1-20200713-3”,split_part(order_no, '-', 1) 结果:1
value =“1-20200713-3”,split_part(order_no, '-', 2) 结果:20200713
value =“1-20200713-3”,split_part(order_no, '-', 3) 结果:3

使用排序的时候要转换成数字:

 select * table order by cast(split_part(column, '-', 3) as integer);