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 判断字段是不是为空 空给默认值 否则取该字段是啥函数来着?的主要内容,如果未能解决你的问题,请参考以下文章