mysql中if...else的方法

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

猜你喜欢

转载自blog.csdn.net/weixin_46801232/article/details/108607422
今日推荐