MYSQL-ORCALE decode函数在MYSQL中的实现
2015-12-24 16:15
651 查看
一、select ifnull(etl(filed(col,...))) ;
mysql中实现oracle的decode函数需要用到三个函数:
(1)ELT(N,str1,str2,str3,...)
若N = 1,则返回值为 str1 ,若N = 2,则返回值为 str2 ,以此类推。 若N 小于1或大于参数的数目,则返回值为 NULL 。 ELT() 是 FIELD()的补数。
(2)FIELD(str,str1,str2,str3,...)
返回值为str1, str2, str3,……列表中的str 指数。在找不到str 的情况下,返回值为 0 。
如果所有对于FIELD() 的参数均为字符串,则所有参数均按照字符串进行比较。如果所有的参数均为数字,则按照数字进行比较。否则,参数按照双倍进行比较。
如果str 为NULL,则返回值为0 ,原因是NULL不能同任何值进行同等比较。FIELD() 是ELT()的补数。
NULL,则返回值为0 ,原因是NULL不能同任何值进行同等比较。FIELD() 是ELT()的补数。
(3)IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境
Select IFNULL(ELT(
FIELD(17
,13, 14, 15, 16, 17, 18, 19)
,'Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen')
,'Adult') str ;
Seventeen
二、直接使用CASE WHEN
Select Name,
case
when Age = 13 then 'Thirteen'
when Age = 14 then 'Fourteen'
when Age = 15 then 'Fifteen'
when Age = 16 then 'Sixteen'
when Age = 17 then 'Seventeen'
when Age = 18 then 'Eighteen'
when Age = 19 then 'Nineteen'
else 'Adult'
end as AgeBracket
FROM Person
mysql中实现oracle的decode函数需要用到三个函数:
(1)ELT(N,str1,str2,str3,...)
若N = 1,则返回值为 str1 ,若N = 2,则返回值为 str2 ,以此类推。 若N 小于1或大于参数的数目,则返回值为 NULL 。 ELT() 是 FIELD()的补数。
(2)FIELD(str,str1,str2,str3,...)
返回值为str1, str2, str3,……列表中的str 指数。在找不到str 的情况下,返回值为 0 。
如果所有对于FIELD() 的参数均为字符串,则所有参数均按照字符串进行比较。如果所有的参数均为数字,则按照数字进行比较。否则,参数按照双倍进行比较。
如果str 为NULL,则返回值为0 ,原因是NULL不能同任何值进行同等比较。FIELD() 是ELT()的补数。
NULL,则返回值为0 ,原因是NULL不能同任何值进行同等比较。FIELD() 是ELT()的补数。
(3)IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境
Select IFNULL(ELT(
FIELD(17
,13, 14, 15, 16, 17, 18, 19)
,'Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen')
,'Adult') str ;
Seventeen
二、直接使用CASE WHEN
Select Name,
case
when Age = 13 then 'Thirteen'
when Age = 14 then 'Fourteen'
when Age = 15 then 'Fifteen'
when Age = 16 then 'Sixteen'
when Age = 17 then 'Seventeen'
when Age = 18 then 'Eighteen'
when Age = 19 then 'Nineteen'
else 'Adult'
end as AgeBracket
FROM Person
相关文章推荐
- mysql主从配置
- MySQL---IFNULL()函数用法
- 远程链接mysql数据库
- mysql整理
- MySQL 数据库字符集
- MySql中Lock命令和unlock命令
- Mysql 数据备份
- mysql 按照某个字段括号里的字符串排序
- MySQL中文全文检索
- mysql 主从的配置方式
- 快速解决mysql Lost connection to MySQL server at 'reading initial communication packet及can't connect to mysql server on 'localhost'
- MySQL 日期函数详解(一)
- mysql 时间函数总结
- mysql存储过程游标的运用,适合对游标刚学习者。
- [MySQL] 不能连接服务器 (10060错误)
- 黄聪:MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法(转)
- mysql去除字段中空格及换行符
- MySQl windows 安装及使用
- MySql 及 MySql WorkBench使用大全
- HIBERNATE 的乐观锁@VERSION和 MYSQL 的两个小问题