postgresql 判断字段是不是为空 空给默认值 否则取该字段是啥函数来着?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql 判断字段是不是为空 空给默认值 否则取该字段是啥函数来着?相关的知识,希望对你有一定的参考价值。

CASE
WHEN D.wk_ptn_cd IS NULL THEN '00'
ELSE D.wk_ptn_cd
END AS wk_ptn_cd
这样可以实现,但是有没有函数可以直接用呢?ORACLE 有NVL函数!

select COALESCE(D.wk_ptn_cd, '00') as wk_ptn_cd

简介:

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

架构:

PostgreSQL强壮的一个原因源于它的架构。和商业数据库一样,PostgreSQL可以用于C/S(客户/服务器)环境。这对于用户和开发人员有很多好处。

PostgreSQL安装核心是数据库服务端进程。它允许在一个独立服务器上。需要访问存储在数据库中的数据的应用程序必须通过数据库进程。这些客户端程序无法直接访问数据,即使它们和服务程序在同一台机器上。

参考技术A select COALESCE(D.wk_ptn_cd, '00') as wk_ptn_cd本回答被提问者采纳 参考技术B nvl(xxx,0) 参考技术C 这个不太清楚

PostgreSQL 9.6。检查字段是不是为空

【中文标题】PostgreSQL 9.6。检查字段是不是为空【英文标题】:Postgresql 9.6. Check if a field is emptyPostgreSQL 9.6。检查字段是否为空 【发布时间】:2018-02-19 01:48:47 【问题描述】:

在 Postgresql 9.6 中,我有一个这样的表:

ID  ADDRESS_1  ADDRESS_2
 1    bac1       def2
 2    bac2  

如果我执行这个

SELECT exists (SELECT ADDRESS_2 FROM my_table WHERE ADDRESS_1='bac3');

我得到错误答案(预期)

但是,如果我执行此操作

SELECT exists (SELECT ADDRESS_2 FROM my_table WHERE ADDRESS_1='bac2');

我得到了正确的答案(不是预期的)

我认为这是因为有一个 Null 值。

所以我的目标是为最后一个获得 False 值。

有什么想法或想法吗?

提前谢谢你

【问题讨论】:

【参考方案1】:

第二个查询“失败”的原因是因为有一条记录与EXISTS 子句中的条件匹配。如果您添加逻辑以在 ADDRESS_2 列中也坚持非 NULL 值,您应该得到您想要的行为:

SELECT EXISTS
    (SELECT ADDRESS_2 FROM my_table
     WHERE ADDRESS_1 = 'bac2' AND ADDRESS_2 IS NOT NULL);

【讨论】:

以上是关于postgresql 判断字段是不是为空 空给默认值 否则取该字段是啥函数来着?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL判断是否为空coalesce

MySQL:判断字段是不是为空

SQL判断字段是不是为空,为NULL

asp 判断多个字段是不是为空

php判断mysql数据库是不是为空

在Oracle中怎么判断字段是不是为空