PostgreSQL对空值处理nullif函数_pgsql ifnull-程序员宅基地

技术标签: 数据库  

nullif(var1,var2)
如果var1和var2相等则返回null,如果不相等则返回var1

select nullif(1,null);  结果:1
select nullif(null,1);  结果:null
select nullif(1,1);     结果:null
select nullif(1,0);     结果:1


create table posts(
    id serial primary key,
    title varchar(255) not null,
    excerpt varchar(255),
    body text,
    create_tiem timestamp default current_timestamp,
    update_time timestamp
);


insert into posts(title,excerpt,body) values
    ('test post 1','test post excerpt 1','test post body 1'),
    ('test post 2','','test post body 2'),
    ('test post 3', null ,'test post body 3');

案例1:
select id,title ,excerpt from posts;
结果:由结果得知excerpt有空值null
id       title            excerpt
1        test post 1      test post excerpt 1
2        test post 2      
3        test post 3      [null]



案例2:
select id,title,coalesce(
                excerpt,
                left(body,40)
                ) 
    from posts;
结果:由结果得知null值的会做处理,但是对于''是不做处理的
id   title          excerpt
1      test post 1    test post excerpt 1
2      test post 2  
3      test post 3    test post body 3



案例3:
select id,title,coalesce(
                nullif(excerpt,''),
                left(body,40)
                ) 
    from posts;
结果:由结果得知null值和''的都会做处理,因为使用了nullif函数
id     title          excerpt
1      test post 1    test post excerpt 1
2      test post 2    test post body 2
3      test post 3    test post body 3




left函数:
返回最左面 n 字符
select left('abcdefgh', 5);   结果:abcde


right函数:
返回最右面 n 个字符
select right('abcdefgh', 3);  结果:fgh


rpad函数:
字符不满 10 个,用 # 补满
select rpad('abcd', 10, '#'); 结果:abcd######


备注:COALESCE(currentcount,0)
如果currentcount不为null,返回currentcount。否则返回0。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35222843/article/details/127994839

智能推荐

基于惯性主轴方向的CATIA包围盒(Bounding Box)_catia bounding box-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏13次。基于惯性主轴方向的CATIA包围盒(Bounding Box)通俗地说,对象的包围盒(Bounding Box)指的是一个最小的能将对象包含在内的长方体盒子。在机械设计中,零件(部件)的包围盒可用于确定是否和其他零件在装配中发生干涉,或者用于确定加工该零件所需的最小材料尺寸。在CATIA中,使用惯量测量(Mearure Inertia)工具可以直接测量得到3D模型的包围盒,这是一种确定对象包围盒尺寸的常用工具。惯量测量工具所测的包围盒等尺寸为相对于坐标系方向的包围盒,但有时候我们希望测得相对于惯性主轴的_catia bounding box

线程 vs 进程_线程vs进程-程序员宅基地

文章浏览阅读1.8w次,点赞15次,收藏87次。进程与线程的区别是很重要的一个知识点,也是面试中经常问到的。网上转载博客痕迹明显,且千篇一律。我简单提取下,记录下来,希望能帮到你。另外在 LeetCode 上也有关于此问题的讨论,可以直接浏览“Read more” 部分。引入进程之前–多道程序设计概述多道程序设计技术是操作系统最早引入的技术,它的设计思想是允多个程序同时进入内存并运行,其目的是为了CPU的利用率,进而提高系统效率。特点多道程序设_线程vs进程

pydev连接数据库mysql布署及python连接mysql问题及Python学习_those products with missing-程序员宅基地

文章浏览阅读2.2k次。 mysql本地、远程连接及'mysql' 不是内部或外部命令错误 - 程序员宅基地 https://blog.csdn.net/sjpljr/article/details/80115364Python3 MySQL 数据库连接 | 菜鸟教程(好用!) http://www.runoob.com/python3/python3-mysql.html安装:pip install p..._those products with missing

Python类里的__init__方法函数,Python类的构造函数_python中构造函数-程序员宅基地

文章浏览阅读1w次。如果某类里没有__init__方法函数,通过类名字创建的实例对象为空,切没有初始化;如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。——————————————————————————————————————class Ca: def __init__(self, v): # 注意前后各两个下划线 sel_python中构造函数

Conflux人物志-杨光博士:徜徉在密码学中的“宝藏男孩”-程序员宅基地

文章浏览阅读531次。说起密码学,大多数人最先联想到的可能是波诡云谲的谍战,为了取得对方密码不惜一切代价的特工;或许也有人会想到二战时期的布莱奇利公园,年轻的图灵带领着一群天才数学家成功破解了..._密码专家阳光

面向对象-静态变量与单例设计模式_单例模式,使用static 变量-程序员宅基地

文章浏览阅读449次。1. Static1.1 什么是Staticstatic:静态的static可以用来修饰:方法、属性、代码块、内部块1.2 Static的使用1.2. 1static修饰属性:静态变量;属性:按是否使用static修饰,又分为静态变量 vs 非静态变量实例变量:当我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象中的非静态属性时,不会导致其它对象中同样的属性值修改静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量,当通过某一个对_单例模式,使用static 变量

随便推点

go技术日报--2020-05-29_技术日报接口-程序员宅基地

文章浏览阅读745次。go 语言中文网(每日资讯)_2020-05-29一、Go 语言中文网Go 语言之父:拿过奥运银牌,发明过航天望远镜,想用 Go 语言解放程序员!Go Web 开发如何优雅的包含静态资源文件?Go:从 context 源码领悟接口的设计Go 异常处理详解Go Redis 客户端源码阅读(3)协程间的通信二、亚军进化史Go 技术日报(2020-05-28)三、xueyuanjunGo 语言 Web 编程系列(十六)—— 设置、读取和删除 Cookie四、 _技术日报接口

vs2013+NetCDF二维数据的读取方法-程序员宅基地

文章浏览阅读137次,点赞9次,收藏4次。说明:根据自己的实际情况请参考使用,更多问题请参考博客中的其他文章。环境:win7+vs2013+NetCDF4.4.2。

风险评估在应对网络安全威胁中扮演着重要的角色-程序员宅基地

文章浏览阅读771次,点赞15次,收藏8次。是从风险管理角度,运用科学的方法和手段,系统地分析信息系统所面临的威胁及其存在的脆弱性,评估安全事件一旦发生可能造成的危害程度,提出有针对性的防护对策和整改措施,防范和化解信息安全风险,将风险控制在可接受的水平,最大限度地保障信息安全提供科学依据。——风险对策会付出一定代价,需将不同风险对策的适用性与不同风险的后果结合考虑,使不同风险选择适宜的风险对策,形成高效的风险对策组合。:涉及多个国家和地区的业务运营,面临政治风险、汇率风险、文化差异等复杂因素,风险评估有助于企业更好地适应不同环境并降低潜在风险。

维基百科(Wikipedia)网址_维基中文百科官网入口-程序员宅基地

文章浏览阅读10w+次,点赞103次,收藏492次。分享几个维基百科网址镜像,服务器在国内,可以直接访问,并且打开速度比较快,因镜像网址的原因,搜索的结果也几乎相同,若无法访问国外的维基百科,那就来试试这个吧。_维基中文百科官网入口

常用应用层协议的报文格式_应用层协议报文格式-程序员宅基地

文章浏览阅读4.4k次。常见应用层协议的报文格式1.常用应用程序的端口号2.HTTP的报文格式1.常用应用程序的端口号名称应用层协议端口运输层协议说明超文本传输协议HTTP80TCP域名解析系统DNS53UDP/TCP长度超过512字节,使用TCP动态主机配置协议DHCP67/68UDP简单网络管理协议SNMP161/162UDP文件传..._应用层协议报文格式

javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t-程序员宅基地

文章浏览阅读1w次。RSA超过长度时报这个错,解决方法是 加密使用117 解密使用128 public static byte[] encryptByPublicKey(byte[] data, PublicKey publicKey){ int MAX_ENCRYPT_BLOCK = 117; try { Cipher cipher = Cipher.getInstance(CIPH_rsa_padding_check_pkcs1_type_2

推荐文章

热门文章

相关标签