天天看點

mysql對應decode_MySQL相當于Oracle中的DECODE函數

mysql對應decode_MySQL相當于Oracle中的DECODE函數

I am trying to find an equivalent of DECODE function in MySQL. It works like this:

Select Name, DECODE(Age,

13,'Thirteen',14,'Fourteen',15,'Fifteen',16,'Sixteen',

17,'Seventeen',18,'Eighteen',19,'Nineteen',

'Adult') AS AgeBracket

FROM Person

The DECODE function will compare value of column 'Age' with 13, 14, 15.. and return appropriate string value 'Thirteen', 'Fourteen'.. and if it matches with nothing, then default value of 'Adult' will be returned.

Any ideas which function in MySQL can do this job? Thanks.

CLARIFICATION: I agree using CASE is one way of achieving desired result, but I am rather looking for a function because of performance and other reasons.

解決方案

You can use IF() where in Oracle you would have used DECODE().

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