admin管理员组

文章数量:1794759

mysql中if...else的方法

mysql中if...else的方法

mysql中if…else的方法 第一种if语句做为表达式使用,语法格式如下: IF(expr1,expr2,expr3) SELECT IF(1>0, '真', '假') FROM Table

今天终于体会到if的用法,受到该文章启发,可以使用if判断传入一个对象多个属性的多条件判断语句

@Query(value = "SELECT * FROM per_hire WHERE IF(?1!='',name=?1,1=1)\\n" + " AND IF(?2!='',sex=?2,1=1)\\n" + " AND IF(?3!='',highest_education=?3,1=1)\\n" + " AND IF(?4!='',if_fresh=?4,1=1)\\n" + " AND IF(?5!='',hire_dept=?5,1=1)\\n" + " AND IF(?6!='',hire_position=?6,1=1)\\n" + " AND IF(?7!='',hire_channel=?7,1=1)\\n" + " AND IF(?8!='',hire_type=?8,1=1)",nativeQuery = true) List<PerHire> findper(String name, String sex, String highestEducation, String ifFresh, String hireDept, String hirePosition, String hireChannel, String hireType);

多条件嵌套:

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

本文标签: 方法mySQL