有这种要求,更新自己本身的字段的某个值进行加或者减,

常规方法:

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 = 'no.0' ,
ko_item_2 = 'no.2' ,
ko_item_3 = 'no.3' ,
ko_item_4 = 'no.4' ,
ko_item_5 = 'no.5'
WHERE
kokyaku_cd = '000002' AND
sagyo_ymd = '2015-01-30'

能实现,不过效率肯定不高,要进行查询两次

pgsql里面提供一个函数能完成这个操作:

UPDATE
tbl_kintai_print_his
SET
print_time = now(),
print_emp_cd = '000000',
times = COALESCE (SUM(times),0)+ 1,
pattern = '055' ,
ko_item_1 = 'no.0' ,
ko_item_2 = 'no.2' ,
ko_item_3 = 'no.3' ,
ko_item_4 = 'no.4' ,
ko_item_5 = 'no.5'
WHERE
kokyaku_cd = '000002' AND
sagyo_ymd = '2015-01-30'

能直接取到上一次的结果进行添加

二:还有一种用法就是在几个字段中取值,从前往后,一直取到不为NULL的值为止。

 select id , name ,coalesce(Ph_no,Alt_no,Office_no) as contact number from employee 

我们可以通过这样的语句,来得到Ph_no,Alt_no,Office_no这几个字段中,第一个不存在null的数值,上面的语句得到

Pgsql 里面 COALESCE的用法的更多相关文章

  1. coalesce函数用法

    COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL

  2. mssql sqlserver isnull coalesce函数用法区别说明

    摘要: 下文讲述isnull及coalesce空值替换函数的区别 isnull.coalesce函数区别:1.isnull 只能接受两个参数,而coalesce函数可以接受大于等于两个以上参数2.is ...

  3. MySQL coalesce函数用法说明(转)

    在mysql中,其实有不少方法和函数是很有用的,一个叫coalesce的,作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1); -- Re ...

  4. SqlServer coalesce函数

    SqlServer数据库中coalesce函数用法:在SqlServer2005中有了新的函数,它非常的实用,它就是coalesce函数,此函数可以返回参数中的第一个非空表达式,当你要在N个字段中选取 ...

  5. coalesce搭配nullif使用

    with t1 as ( select NUll as col1, '' as col2, 'aaa' as col3 ) --关于COALESCE用法 当col1 为 Null时候返回 col2 依 ...

  6. 常用Mysql或者PostGresql或者Greenplum的语句总结。

    1.使用mysql的union all可以同时查询出所有自己想要查询数据表的数据量. select 'user' as tablename, count(*) from user union all ...

  7. mssql sqlserver null数据类型专题

    摘要: 下文将详细讲述sql server NULL(空值)的相关知识,如下所示: 实验环境: sql server 2008 R2 NULL(空值)简介: mssql sqlserver null数 ...

  8. 关于 pgsql 数据库json几个函数用法的效率测试

    关于 pgsql 数据库json几个函数用法的效率测试 关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次 ...

  9. Mysql coalesce()函数认识和用法

    Mysql coalesce()函数认识和用法   coalesce()解释:返回参数中的第一个非空表达式(从左向右):    鉴于在mysql中没有nvl()函数, 我们用coalesce()来代替 ...

随机推荐

  1. BZOJ 1050 旅行

    Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大 ...

  2. 利用CSP探测网站登陆状态

    0x00 背景 今天看到zone里有同学发帖说了探测支付宝登录状态的帖子:http://zone.wooyun.org/content/17665 由此我想到了我们parsec的@/fd 半年前提到的 ...

  3. tortoisegit安装使用

    git的使用越来越广泛 使用命令比较麻烦,下面讲解一下tortoisegit的使用 先下载安装git(msysgit)和tortoisegit,安装后提示重启电脑,不解释 1.找一个文件夹做仓库 这里 ...

  4. MFC任务管理器task manager----进程的挂起与恢复--NtSuspendProcess&&NtResumeProcess

    http://hi.baidu.com/xbbsh/blog/item/b73d3125462201084c088db1.html ---------------------------------- ...

  5. C参数计算

    C‘计算参数时,从右向左压栈的 int a[]={1,3,4}; int * ptr=a; pirntf("%d,%d\n",*ptr,*(++ptr)); 输出都是3:

  6. Farm Irrigation(并查集)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  7. COJ 0046 20701除法

    20701除法 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述     输入正整数n,按从小到大的顺序输出所有满足表达式abcd ...

  8. Light OJ 1013 Love Calculator(DP)

    题目大意: 给你两个字符串A,B 要求一个最短的字符串C,使得A,B同时为C的子串. 问C最短长度是多少? C有多少种? 题目分析: 做这道题目的时候自己并没有推出来,看了网上的题解. 1.dp[C串 ...

  9. Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法

    做自己的类加载器 虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行.那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能. 以下内容摘自A ...

  10. [Locked] Two Sum

    Two Sum II - Input array is sorted Given an array of integers that is already sorted in ascending or ...