postgresql 实现将字段为空的值替换为指定值

1、null 表示缺失的值, '' " "表示空值

null 参与的表达式运算都返回null

使用is null 判断是null

is not null 判断非null

2、nullif(value1, value2) 如果value1 == value2 返回null

3、coalesce(arg1, arg2, ...) 返回第一个 不为null的值

所以可以使用如下语句,实现将table中filed为空的记录替换为指定值

update table set filed = COALESCE(NULLIF(trim("filed"), ''), 'value')
COALESCE(NULLIF(to_char(T1.online_tm, 'yyyy-MM-dd HH24:MI:SS'), '1900-01-01 00:00:00'), ' ')

补充:postgrepsql 判断字段为空返回0

我就废话不多说了,大家还是直接看代码吧~

select *,COALESCE(p_id,0) is_pid from sys_unit where 1=1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • postgresql 中的COALESCE()函数使用小技巧

    场景: 存在一个用户白名单表,提供了此用户的用户名和地区信息,判断此用户是否在此白名单表中. 如: 姓名 白名单地区 张三 中国,美国 则可使用如下语句: SELECT ID, user, area_list FROM t_white_user WHERE user = #{ user, jdbcType = VARCHAR } AND ( COALESCE (area_list, '') LIKE CONCAT ( '%' ,#{ country, jdbcType = VARCHAR },

  • PostgreSQL COALESCE使用方法代码解析

    有这种要求,更新自己本身的字段的某个值进行加或者减 常规方法: UPDATE tbl_kintai_print_his SET print_time = now(), print_emp_cd = '000000', times = (select times from tbl_kintai_print_his where kokyaku_cd = '000002' AND sagyo_ymd = '2015-01-30' ) + 1, pattern = '055' , ko_item_1 =

  • postgresql 中的 like 查询优化方案

    当时数量量比较庞大的时候,做模糊查询效率很慢,为了优化查询效率,尝试如下方法做效率对比 一.对比情况说明: 1.数据量100w条数据 2.执行sql 二.对比结果 explain analyze SELECT c_patent, c_applyissno, d_applyissdate, d_applydate, c_patenttype_dimn, c_newlawstatus, c_abstract FROM public.t_knowl_patent_zlxx_temp WHERE c_a

  • 解决PostgreSQL Array使用中的一些小问题

    在PostgreSQL 中可以使用Array数据结构,例如 select array[1,2,3]; return {1,2,3} 但是,如果 select array[1,2,3][1]; --会报错 select (select array[1,2,3])[1] --可以使用 那么在用正则匹配函数 regexp_match 就会遇到这样的问题,如 select regexp_match('123-123', '(\d+)-(\d+)'); --return {123, 123} select

  • postgresql 实现修改jsonb字段中的某一个值

    我就废话不多说了,大家还是直接看代码吧~ UPDATE tablename SET tags = jsonb_set(tags-'landuse_area', '{landuse_area}',('"' || round((ST_Area(ST_Transform(geom,4527)) * 0.0015) :: NUMERIC,3) || '"')::jsonb, TRUE) WHERE tags @> '{"name":"张三"}';

  • PostgreSQL 禁用全表扫描的实现

    PostgreSQL可以通过一些设置来禁用全表扫描(FULL SCAN/Seq Scan) 注意: 设置此功能后不是完全避免全表扫描,而是只要有不通过全表扫描能得出结果的就不走全表扫描. 如果什么路都不通,那肯定得全表扫描,不然怎么获取数据. 而且并不是不走全表扫描性能就一定好. 下面展示下这个功能: 查询表结构: highgo=# \d test Table test Column | Type | Modifiers -------------+-----------------------

  • postgresql 实现将字段为空的值替换为指定值

    1.null 表示缺失的值, '' " "表示空值 null 参与的表达式运算都返回null 使用is null 判断是null is not null 判断非null 2.nullif(value1, value2) 如果value1 == value2 返回null 3.coalesce(arg1, arg2, ...) 返回第一个 不为null的值 所以可以使用如下语句,实现将table中filed为空的记录替换为指定值 update table set filed = COAL

  • SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值

    SQL SERVER将某一列字段中的某个值替换为其他的值 update 表名 set 列名 = REPLACE( 列名 ,'aa','bb') SQL SERVER"函数 replace 的参数 1 的数据类型 ntext 无效"解决办法 UPDATE 表名 SET 列名= REPLACE(CAST 列名 AS varchar(8000)),'aa','bb')

  • 如何将numpy二维数组中的np.nan值替换为指定的值

    基础知识: (1)np.nan表示该值不是一个数,比如数据中收入.年龄的缺失值:np.inf表示无穷大 (2)np.nan == np.nan 的结果为False (3)nan与任何数的操作结果均为nan,例如sum((np.nan,4)) 的结果为nan (4)一个ndarray数组t1,可以用np.isnan(t1) 定位到nan值的位置,再用t1[np.isnan(t1)] = 指定值 将nan替换为指定值 (5)np.nan_to_num(t1),可以将t1中的nan替换为0 (6)t1

  • 在PostgreSQL中设置表中某列值自增或循环方式

    在postgresql中,设置已存在的某列(num)值自增,可以用以下方法: //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中 create table tb1 as (select *, row_number() over(order by name) as rownum from tb); //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中 update tb set

  • Spring boot Jpa添加对象字段使用数据库默认值操作

    目录 项目搭建 代码 配置文件 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=truespring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.

  • Spring boot Jpa添加对象字段使用数据库默认值操作

    目录 项目搭建 错误测试 解决问题 jpa做持久层框架,项目中数据库字段有默认值和非空约束,这样在保存对象是必须保存一个完整的对象,但在开发中我们往往只是先保存部分特殊的字段其余字段用数据库默认值,要是直接用idea生成实体类操作的话会报SQLIntegrityConstraintViolationException异常,我们需要jpa根据传入的对象存在的属性动态生成更新和添加语句需要给实体类添加@DynamicUpdate,@DynamicInsert根据对象属性生成动态update和inse

  • MySQL中查询字段为空或者为null的方法

    目录 MySQL查询字段为空或者为null 判断为null 判断为空或空格 MySQL查询字段为空(null)时设置默认值 总结 MySQL查询字段为空或者为null 判断为null select * from table where  column is null; 不为null: select * from table where  column is not null; 判断为空或空格 select * from table where column =''; 注:不管是空还是其中有空格都

  • Java实现过滤掉map集合中key或value为空的值示例

    本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * 过滤掉map集合中key或value为空的值 * @author lmb * @date 2017-3-14 */ public

  • Mybatis多个字段模糊匹配同一个值的案例

    需求: 搜索框中可输入手机号,姓名,地址查询,后台需要对一个框中的多个字段做匹配查询. 搜索 可以在sql语句中做拼接条件查询: <if test="condition!=null and condition!=''"> AND CONCAT(r.name,a.name,a.phone,a.addr_detail) LIKE '%' #{condition} '%' </if> 补充知识:在Mybatis xml使用mysql数据库进行多字段模糊查询(Like)

  • 实例验证MySQL|update字段为相同的值是否会记录binlog

    一 前言 前几天一个开发同事咨询我,update 更新字段为相同的值是否会记录binlog,我回复说不会. 其实 严格的说这个答案是不准确的,说要区分场景.是否记录 update 语句到binlog依赖于 binlog_format 的设置.具体情况 实践出真知. 二 测试 2.1  binlog_format 为 ROW 模式 2.2  binlog_format 为 STATEMENT 模式 解析binlog内容,完整的记录了update语句. 2.2  binlog_format 为 MI

随机推荐