sql - MySQL 相当于 Oracle 中的 DECODE 函数

标签 sql mysql database oracle

我正在尝试在 MySQL 中找到与 DECODE 函数等效的函数。它的工作原理如下:

Select Name, DECODE(Age,
       13,'Thirteen',14,'Fourteen',15,'Fifteen',16,'Sixteen',
       17,'Seventeen',18,'Eighteen',19,'Nineteen',
       'Adult') AS AgeBracket
FROM Person

DECODE 函数会将“Age”列的值与 13、14、15.. 进行比较,并返回适当的字符串值“Thirteen”、“Fourteen”.. 如果没有匹配任何内容,则返回默认值“Adult”将会被退回。

有什么想法 MySQL 中的哪个函数可以完成这项工作吗?谢谢。

澄清:我同意使用 CASE 是实现所需结果的一种方法,但由于性能和其他原因,我宁愿寻找一个函数

最佳答案

您可以在 Oracle 中使用 DECODE() 的地方使用 IF()

mysql> select if(emp_id=1,'X','Y') as test, emp_id from emps; 

关于sql - MySQL 相当于 Oracle 中的 DECODE 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980806/

相关文章:

mysql - 如何使用索引将mysql datetime类型?

mysql - 如何找到与定义值匹配的确切组?

SQL 查询 - 选择除列中的值以 402 或 403 或 A40 开头的所有行

mysql - 使用 SphinxSE 手动设置随机排序种子?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

sql - 查找并替换列中的特定字符串

java - 在objectdb中查询

sql - Azure Synapse SQL 按需分页(OFFSET/FETCH)

mysql - 使用mysql启动两个独立的事务

mysql - 我怎样才能重写我的 MySQL 密码,以便我可以 rake db : create on rails?