mysql实现decode_Oracle中的DECODE()函数,MySQL中怎么实现DECODE()函数_日月龙腾的博客-程序员秘密

技术标签: mysql实现decode  

decode(条件,值1,返回值1,返回值2) 对应的转换是:case when 条件 = '值1' then '返回值1' else '返回值2' end

举例:

oracle:

select decode(sex,NULL,'男','女')as sex,name,age,score From  student_score_table

mysql实现(转换后):

select case when sex=null then '男' else '女'endas sex,name,age,score From  student_score_table

在mysql中有decode()是这样解释的:一种是加密,另外一种是比较。

在Oracle中:

语法:DECODE(control_value,value1,result1[,value2,result2…] ,[default_result]);control _value试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。

value1是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应

result1 是一组成序偶的结果值。

default_result 未能与任何一个值匹配时,函数返回的默认值。

例如:

selectdecode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual

当x等于1时,则返回‘x is 1’。

当x等于2时,则返回‘x is 2’。

否则,返回others’。

需要,比较2个值的时候,可以配合SIGN()函数一起使用。

SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')

同样,也可以用CASE实现:

1 SELECT CASE SIGN(5 - 6)2

3 WHEN 1 THEN 'Is Positive'

4

5 WHEN -1 THEN 'Is Nagative'

6

7 ELSE 'Is Zero' END

8

9 FROM DUAL

此外,还可以在Order by中使用Decode。

例如:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。

select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42131342/article/details/113273034

智能推荐

WPF Image控件中的BitmapSource与Bitmap的互相转换_图像指针 转换为 bitmapsource_alan_will的博客-程序员秘密

有的时候需要把GDI的System.Drawing中的Bitmap转化成BitmapSourceSource Code /// /// 从Bitmap转换成BitmapSource /// /// /// public BitmapSource ChangeBitmapToBitm

kafka-manager安装_remainsu的博客-程序员秘密

一、环境准备操作系统:Centos6.5kafka-manager版本:1.3.3.7sbt版本:0.13.15zookeeper版本:3.4.10kafka版本:2.10-0.8.2.1jdk版本:1.8.0_40机器:machine_1:172.16.8.101二、具体过程此处暂时省略hosts、ssh免密码登陆、jdk的配置注意:此版本kafka-manager要求jdk必须为

Probability|Given_「已注销」的博客-程序员秘密

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/K#include#include#include#include#include#include#include#include#include#include#include#include#include#include#in

同步多线程 分类: VC++ 2013-11-..._weixin_30378623的博客-程序员秘密

同步多线程(SMT)是一种在一个CPU 的时钟周期内能够执行来自多个线程的指令的硬件多线程技术。本质上,同步多线程是一种将线程级并行处理(多CPU)转化为指令级并行处理(同一CPU)的方法。 同步多线程是单个物理处理器从多个硬件线程上下文同时分派指令的能力。同步多线程用于在商用环境中及为周期/指令(CPI)计数较高的工作负载创造性能优势。 处理器采用超标量结构,最...

Vue stage2_aozhou9334的博客-程序员秘密

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</tit...

该设备无法启动_笔记本键盘 该设备无法启动_Hustudent20080101的博客-程序员秘密

首先说明一下,这个方法不是我发现的,而是自己碰到后到网上搜索到的,然后按照这个方法顺利解决了,心里很高兴,跟大家分享一下。{:6_325:}       今天开机后在选择了登录帐户后,输入密码时发现usb键盘没办法输入,然后用笔记本自带的键盘也用不了,只得用屏幕键盘输入了。因为在此之前我刚进入过系统的安全模式,那自然笔记本自带的键盘是不会有问题的了,所以怀疑是硬件的驱动出了问题。进入系统,打开设备

随便推点

Android实现贪吃蛇游戏一:游戏界面及控制_mlagents实现贪吃蛇_dgutkai的博客-程序员秘密

贪吃蛇游戏是一款经典休闲游戏,本文将在android上实现经典的贪吃蛇游戏,操作界面和以前那些游戏机一样。该游戏的实现思路主要是在一个View中将贪吃蛇的游戏界面绘制出来,游戏空间由16*32个小方块组成,使用一个数组记录每一个位置的状态(黑、白)。...

常用 API 函数(7): 位图、图标和光栅运算函数_aitanwu4387的博客-程序员秘密

BitBlt 将一幅位图从一个设备场景复制到另一个 CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 Copy...

vue-baidu-map 路书(bml-lushu)组件开启rotation时 setRotation文件报错_shannon-z的博客-程序员秘密

问题描述在调用路书组件,开启自动转弯功能(rotation为 true)时,当小车在地图轨迹上转弯,会出现以下问题Uncaught TypeError: Cannot read properties of undefined (reading 'x')解决方法// template<bml-lushu :play="mapConfig.play" :path="mapConfig.path" :icon="icon" :speed="m..

顶级技术高手在何处_云算计的博客-程序员秘密

引言计算机技术是一个工程工作,而非一个科学工作,这导致计算机技术天然上限也不太高。当新晋IT人指望着靠学技术实现薪资翻倍时,中高层IT男却默默接受了各种技术瓶颈论和职场无用论。大家觉得...

第一行代码第二版目录_第一行代码目录_安卓飞的博客-程序员秘密

第一行代码第二版目录 本文说明:为了让安卓工程师扫盲、回忆过去第1章 开始启程——你的第一行Android代码  1 1.1 了解全貌——Android王国简介  2 1.1.1 Android系统架构  2 1.1.2 Android已发布的版本  3 1.1.3 Android应用开发特色  4 1.2 手把手带你搭建开发环境  5 1.2.1 准备所需要的工具  5...

linux内存free少cache多,Linux内存分析free与cache清理_伍媚的博客-程序员秘密

###1、free命令 Linux中查看内存的命令为free,命令如下:$ free -htotal used free shared buff/cache availableMem: 62G 4.9G 627M 520K 57G 57GSwap: ...

推荐文章

热门文章

相关标签