mysql中if…else的方法
第一种if语句做为表达式使用,语法格式如下:
IF(expr1,expr2,expr3)
SELECT
IF(1>0, '真', '假')
FROM
Table
多条件嵌套:
SELECT
IF(1>0, IF(2>1, '真', '假'), '假')
FROM
Table
CASE WHEN
SELECT
CASE 1
WHEN 1 THEN '字段的值是1'
WHEN 2 THEN '字段的值是2'
ELSE '字段的值3'
END
FROM
Table
注意:THEN后边的值与ELSE后边的值类型应一致,否则会报错。
第二种:IF…ELSE…做为流程控制语句使用,语法格式如下:
IF search_condition THEN
RETURN()
ELSEIF search_condition THEN
RETURN()
ELSE
RETURN()
END IF
例如第N高薪水的完善
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
if N<0 then
RETURN (select min(Salary) from Employee);
else
SET N = N-1;
RETURN (
select ifnull((select distinct Salary from Employee order by Salary desc limit N,1),null) as NthHighestSalay );
end if;
END