SQL流程控制函数(一)

2023-05-10 10:36:46 浏览数 (1)

IF函数

IF函数用于在满足某个条件时执行一些操作,否则执行另一些操作。语法如下:

代码语言:javascript复制
IF(condition, true_value, false_value)

其中,condition是要判断的条件,true_value是在条件成立时返回的值,false_value是在条件不成立时返回的值。

例如,以下SQL语句使用IF函数判断一个数是否为正数:

代码语言:javascript复制
SELECT IF(number > 0, 'positive', 'non-positive') as result FROM table;

如果number大于0,则返回'positive',否则返回'non-positive'。

CASE函数

CASE函数用于根据不同的条件执行不同的操作。语法如下:

代码语言:javascript复制
CASE expr WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE default_value END

其中,expr是要比较的表达式,value1和value2是需要比较的值,result1和result2是对应的操作结果,default_value是当没有匹配的条件时返回的默认值。

例如,以下SQL语句使用CASE函数根据某个字段的值执行不同的操作:

代码语言:javascript复制
SELECT CASE grade WHEN 'A' THEN 'Excellent' WHEN 'B' THEN 'Good' WHEN 'C' THEN 'Average' ELSE 'Fail' END as result FROM table;

如果grade为'A',则返回'Excellent';如果grade为'B',则返回'Good';如果grade为'C',则返回'Average';否则返回'Fail'。

WHILE函数

WHILE函数用于在满足某个条件时循环执行一些操作。语法如下:

代码语言:javascript复制
WHILE condition DO statement END WHILE;

其中,condition是要判断的条件,statement是需要循环执行的语句。

例如,以下SQL语句使用WHILE函数计算1到100的和:

代码语言:javascript复制
DECLARE sum INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
WHILE i <= 100 DO
   SET sum = sum   i;
   SET i = i   1;
END WHILE;
SELECT sum;

LOOP函数

LOOP函数用于无限循环执行一些操作,直到满足某个条件退出循环。语法如下:

代码语言:javascript复制
LOOP statement IF condition THEN LEAVE END IF; END LOOP;

其中,statement是需要循环执行的语句,condition是退出循环的条件。

例如,以下SQL语句使用LOOP函数计算1到100的和:

代码语言:javascript复制
DECLARE sum INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
LOOP
   SET sum = sum   i;
   SET i = i   1;
   IF i > 100 THEN
      LEAVE;
   END IF;
END LOOP;
SELECT sum;
sql

0 人点赞