度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1242|回复: 6
打印 上一主题 下一主题

[分享] oracle中decode的用法简介

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-4-4 17:46:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF
decode(字段或字段的运算,值1,值2,值3)

       这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-4-4 17:46:43 | 只看该作者
比如要查询某班男生和女生的数量分别是多少?

通常我们这么写:

select count(*) from 表 where 性别 = 男;

select count(*) from 表 where 性别 = 女;

要想显示到一起还要union一下,太麻烦了

用decode呢,只需要一句话

select decode(性别,男,1,0),decode(性别,女,1,0) from 表

点评

好用!好强大!  详情 回复 发表于 2020-4-5 10:22
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
 楼主| 发表于 2020-4-4 17:58:04 | 只看该作者
自顶一个
回复

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
地板
发表于 2020-4-4 18:16:26 | 只看该作者
可以可以。这个和case when  then 差不多,但是代码简洁多了。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9328

积分

论坛元老

Rank: 8Rank: 8

积分
9328
5#
发表于 2020-4-4 21:36:18 | 只看该作者
就是满足表达式的值,即返回一个值, 无匹配就会返回缺省的值
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
6#
发表于 2020-4-5 09:28:07 来自手机 | 只看该作者
王爱东 发表于 2015-11-4 18:16
可以可以。这个和case when  then 差不多,但是代码简洁多了。

经常用的函数。
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
7#
发表于 2020-4-5 10:22:08 | 只看该作者
张兴康 发表于 2015-11-4 17:46
比如要查询某班男生和女生的数量分别是多少?

通常我们这么写:

好用!好强大!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 17:00 , Processed in 0.122850 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表