注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL :Conditional Expressions  

2011-06-28 13:27:24|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

              
              像其它数据库一样,PostgreSQL 也有条件表达式,  这里主要描述 PostgreSQL的条件表达式
       的用法。


一 CASE ...WHEN
CASE WHEN condition THEN result
     [WHEN ...]
     [ELSE result]
END

    备注: "case when" 的用法和 if/else 语句很相似,具体不解释了,看下面这个例子。


--CASE 用法举例
skytf=> \d test_41;
           Table "skytf.test_41"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 id     | integer               |
 name   | character varying(32) |

skytf=> select * from test_41;
 id | name
----+------
  1 | a
  2 | b
  3 | c
(3 rows)

skytf=> select a.name,
skytf->        case when a.id=1 then 'one'
skytf->             when a.id=2 then 'two'
skytf->             else 'other'
skytf->        end
skytf-> from test_41 a ; 
 name | case 
------+-------
 a    | one
 b    | two
 c    | other
(3 rows)

 

二 COALESCE 函数
    COALESCE(value [, ...])
   
    备注: 1 如果第一个参数为非空,则COALESCE函数返回第一个参数值;
                2 如果所有参数为空,则返回为空;
                3 COALESCE函数一般用于替换默认值为NULL的字段值;
                4 如果第一个参数为空,则显示第二个参数的值,如果第一,二参数为空,
                    则取第三参数的值,并按这规则判断。


--COALESCE 函数用法举例子
skytf=> select coalesce (1,0);
 coalesce
----------
        1
(1 row)

skytf=> select coalesce(null,1);
 coalesce
----------
        1
(1 row)

skytf=> select coalesce (null,null);
 coalesce
----------
 
(1 row)

skytf=> select coalesce(null,null,2);
 coalesce
----------
        2
(1 row)

skytf=> select coalesce(null,3,2);
 coalesce
----------
        3
(1 row)


三 NULLIF 函数
   NULLIF(value1, value2)
 
   备注:  1 如果value1 等于 value2 ,则 NULLIF函数返回 null;
                2 如果value1 值为 null, 则返回 null;
                3 如果value2 值为 null, 则返回 value1 的值;
                4 简单的说:如果 value1=value2 ,则返回 null,否则都返回 value1 的值。


--NULLIF 函数用法举例
skytf=> select nullif(1,1);
 nullif
--------
      
(1 row)

skytf=> select nullif(null,1);
 nullif
--------
      
(1 row)

skytf=>
skytf=>
skytf=> select nullif(1,null);
 nullif
--------
      1
(1 row)

skytf=> select nullif(1,3);
 nullif
--------
      1
(1 row)

  评论这张
 
阅读(29899)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016