赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

如何正确的理解 SQL语句中"CASE"的用法

发布时间:2007.09.13 04:58     来源:赛迪网    作者:雅诗

写SQL语句时,或在PL/SQL中,经常需要在一个SQL语句中,根据不同的条件,有多种处理方法,如下面的例子:出售一种商品时,单价不同,折扣不同,对这种需求的处理,如果分情况处理,将会很麻烦,如果用Case语句,就可以在一条SQL语句中得到想要的结果。

Case的语法:

case when 条件A Then 结果A When 条件B 结果B....... else 结果N end和Decode 不同的是,Decode 只能针对固定的值,而 Case 可以用不是固定值,需是一个条件。

现在有以下的需求,有一个字符串,最后的两位可能是 ’/R’ ,’/T’ 另外,有的后两位没有前面的’/R’ ,’/T’ ,现在针对不同的需要,要将 ’/R’ ,’/T’ 取掉,没 ’/R’ ,’/T’, 就不做处理。

A01JCL-A01JCL/GF117F0001TR/RSQL写法:

select (case 
when instr(code, ’/R’) > 0 then 
substr(code, 1, instr(code, ’/R’) - 1) 
when instr(code, ’/T’) > 0 then 
substr(code, 1, instr(code, ’/T’) - 1) 
else 
’0’ 
end) 
from table_A t ;

注意:使用Case时,要用括号括起来。 (责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 快速掌握SQL改变端口后怎样再进行连接 (09-12) · 细化解析:SQL语句的DECODE和NVL()函数 (09-12)
· 解析:如何理解嵌入式 SQL 程序的结构 (09-10) · 实例解析:在应用程序中执行 SQL 语句 (09-09)
· 解析:如何配置SQL Server来做远程备份 (09-06) · 解决SQL Server日志文件损坏严重的问题 (09-05)
· 如何利用存储过程和触发器来管理数据库 (09-05) · 解析区分大小写的SQL Server 2000实例 (09-04)
· 11g的新特性:SQL Plan Management(SPM) (09-04) · 专题:倾情解密SQL Anywhere Studio (09-04)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管