mysql中if...else的方法
mysql中if…else的方法第一种if语句做为表达式使用,语法格式如下:IF(expr1,expr2,expr3)SELECTIF(1>0, '真', '假')FROMTable多条件嵌套:SELECTIF(1>0, IF(2>1, '真', '假'), '假')FROMTableCASE WHENSELECTCASE 1WHEN 1 THEN '字段的值是1'WHEN 2
·
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
更多推荐
已为社区贡献1条内容
所有评论(0)