Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1762466
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: Oracle

2012-05-14 10:29:01

CASE语句在Oracle中重新给指定字段赋值的用法


本文我们主要介绍了CASE语句在Oracle中重新给指定字段赋值的一种用法,并给出了示例加以验证说明,希望能够对您有所帮助。

AD

CASE语句Oracle中重新给指定字段赋值的用法是本文我们主要要介绍的内容,首先我们需要创建数据库和添加数据,然后我们以两个实例来介绍这一用法,接下来我们就开始介绍这一部分内容。

一、创建数据表

  1. create table t(  
  2. id integer,  
  3. name varchar2(50)  

二、添加数据

  1. insert into t values(1,'zhao')  
  2. insert into t values(2,'qian')  
  3. insert into t values(3,'sun')  
  4. insert into t values(4,'li') 

三、case语句用法:重新给指定字段赋值

例题1:

  1. select t.Name,  
  2. (case t.id--此处可以省略括号,改变id为name  
  3. when 1 then 'zhao'  
  4. when 2 then 'qian'  
  5. when 3 then 'sun'  
  6. else 'li'  
  7. end) --注意不要丢掉end关键字哦  
  8. from T t 

扩展:重新给指定字段赋值另一种方法:decode()的用法

  1. select name, decode(id,1,'zhao',2,'qian',3,'sun','li') from T 

例题2:

  1. select name,  
  2. case   
  3. when id<=2 then 0  
  4. when id=3 then 1  
  5. else 2  
  6. end "targer" --定义别名,此处为双引号哦  
  7. from T 
  8. 注:如果该case语句使用ctas建表的话,则end后面不能使用别名,应该为end targer,作为该case语句的列名,如果使用双引号,则该列名oracle无法识别
    例题3:

case

  1. select name,
  2. case
  3. when delinquent_amounts_lasttime = '?' then 0
  4. else to_number(delinquent_amounts_lasttime)   --否则将源数据转为number类型
  5. end delinquent_amounts_lasttime
  6. from mobile_standard
  7. where rownum <= 30;

以上就是CASE语句在Oracle中重新给指定字段赋值的用法,本文就介绍到这里了,希望本次的介绍能够对您有所帮助。

阅读(1181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~