久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL流程控制函數怎么使用

134次閱讀
沒有評論

共計 2430 個字符,預計需要花費 7 分鐘才能閱讀完成。

本文丸趣 TV 小編為大家詳細介紹“MySQL 流程控制函數怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“MySQL 流程控制函數怎么使用”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。

在 MySQL 中,流程控制函數是指可以控制存儲過程(stored procedure)或函數(function)中執行流程的語句。以下是幾個常用的流程控制函數:

1.IF 函數

實現 IF hellip; hellip;ELSE hellip; hellip; 的效果。

#  如果 expr1 為 true,則返回 expr2,否則返回 expr3
IF(expr1,expr2,expr3)

可以看出,IF 函數與三元運算符很像,如:

//  比較最大數
 int a=10;
 int b=5;
 //  比較
 int bigNum=a b?a:b;

即,將 IF 函數的三個參數中,expr1 是條件表達式,最終結果是 true 或 false,如果條件成立(true)則返回 expr2,如果條件不成立(false)則返回 expr3。例:

SELECT IF(10 5,10,5) AS bigNum;

MySQL 流程控制函數怎么使用

2.IFNULL 函數

同樣是實現 IF hellip; hellip;ELSE hellip; hellip; 的效果,相當于 IF 函數的變種。

#  如果 expr1 不為 NULL,則返回 expr1,否則返回 expr2
IFNULL(expr1,expr2)

即將原本的條件表達式變形為判斷 expr1 是否為 null,不為 null 就是其本身(expr1),為空則是 expr2.

SELECT IFNULL(null, 不空) AS notNull

MySQL 流程控制函數怎么使用

相當于 IF 函數的

SELECT IF(null IS NULL,null, 不空) AS notNull

判斷 expr1 是否為空,為空(true)顯示 expr2,不為空(false)顯示 expr3

3.CASE 函數

case 函數有兩種不同的效果

switch case

相當于 java 中的 switch case 的效果。即 switch 中的變量表達式的值與 case 后面的常量比較。

int week=3;
 switch (week){
 case 1:
 System.out.println( 星期一 
 break;
 case 2:
 System.out.println( 星期二 
 break;
 case 3:
 System.out.println( 星期三 
 break;
 case 4:
 System.out.println( 星期四 
 break;
 case 5:
 System.out.println( 星期五 
 break;
 case 6:
 System.out.println( 星期六 
 break;
 case 7:
 System.out.println( 星期日 
 break;
 default:
 System.out.println( 非法數據 
 break;
 }

用 sql 表示:

# NOW() 函數用于獲取當前日期和時間,# WEEKDAY(date) 函數, 表示返回 date 對應的工作日索引,#  因為索引從 0 開始,所以加 1;也可以不加 1,將 when 的常量改為工作日索引也可
SELECT CASE WEEKDAY(NOW())+1
 WHEN 1 THEN  星期一 
 WHEN 2 THEN  星期二 
 WHEN 3 THEN  星期三 
 WHEN 4 THEN  星期四 
 WHEN 5 THEN  星期五 
 WHEN 6 THEN  星期六 
 WHEN 7 THEN  星期日 
 ELSE  非法數據 
END AS `week`;

MySQL 流程控制函數怎么使用

函數結構

case   要判斷的變量(字段)或表達式
when   常量 1  then   要顯示的值 1(或語句 1);
when   常量 2  then   要顯示的值 2(或語句 2);
…….
else   要顯示的值 n 或語句 n;
end

注意:

與 java 不同,直接寫 case 而不是 switch,且沒有大括號

when 后面直接加常量值,不用寫冒號,用的是 then

then 后面如果是顯示的值,不需要加分號;如果 then 后面加的是語句,就需要加分號。

when hellip; hellip;then hellip; hellip; 語句可以有多個。

默認情況用的是 else。

結尾用 end

4. 多重 IF

類似于 java 中的多重 if 判斷。

int grade=87;
 if (grade =90){
 System.out.println( 優秀 
 }else if (grade =80){
 System.out.println( 良好 
 }else if (grade =70){
 System.out.println( 一般 
 }else if (grade =60){
 System.out.println( 及格 
 }else {
 System.out.println( 不及格 
 }

用 sql 表示:

SELECT id,`name`,chinese,
 CASE
 WHEN chinese =90 THEN  優秀 
 WHEN chinese =80 THEN  良好 
 WHEN chinese =70 THEN  一般 
 WHEN chinese =60 THEN  及格 
 ELSE  不及格 
 END AS `rank`
FROM student

MySQL 流程控制函數怎么使用

函數結構:

case
when   條件 1  then   要顯示的值 1 或語句 1;
when   條件 2  then   要顯示的值 2 或語句 2;
……
else   要顯示的值 n 或語句 n
end

注意:

case 后面沒有加條件

when 后面是條件,結果是 true 或 false;滿足條件執行 then,顯示后面的值或語句

同樣的 then 后面如果是顯示的值,不需要加分號;如果 then 后面加的是語句,就需要加分號。

讀到這里,這篇“MySQL 流程控制函數怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-04-09發表,共計2430字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 象山县| 卫辉市| 永昌县| 呼伦贝尔市| 淄博市| 金乡县| 合江县| 赣州市| 晋江市| 鹿邑县| 南汇区| 星座| 玉山县| 五大连池市| 内黄县| 鄂托克前旗| 重庆市| 北京市| 柘荣县| 炉霍县| 临夏市| 鄱阳县| 天台县| 宜宾县| 当雄县| 曲麻莱县| 彭水| 开原市| 巴林左旗| 内江市| 蓬溪县| 盐边县| 许昌市| 温州市| 涿州市| 柞水县| 青州市| 正镶白旗| 彭山县| 新昌县| 荔浦县|