當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程語言 » sql的if函數怎麼用

sql的if函數怎麼用-九游会j9娱乐平台

發布時間: 2024-11-17 00:36:52

1. 條件判斷函數-case when、if、ifnull詳解

在眾多sql中,統計型sql絕對是讓人頭疼的一類,之所以如此,是因為這種sql中必然有大量的判讀對比。而條件判斷函數就是應對這類需求的利器。本文重點總結 case when 、 if 、 ifnull 三種函數。

case when語句能在sql語句中織入判斷邏輯,類似於java中的if else語畝李句。

case when語句分為簡單函數和條件表達式。

1、簡單函數

如果欄位值等於預期值,則返回結果1,否則返回結果2。

下面通過一個簡單的示例來看一下具體用法。

表score:

場景:在score表中,sex為1表示男性,sex=0表示女性,查詢時轉換成漢字顯示。

sql語句:

結果:

2、條件表達式

case的簡單函數使用簡便,但無法應對較為復雜的場景,這就需要用到條件表達式了,其語法結構如下:

解釋一下,語句中的condition是條件判斷,租耐卜如果該判斷結果為true,那麼case語句將返回result,否則返回result2,如果沒有else,則返回null。case與end之間可以有多個when…then…else語句。end表示case語句結束。

場景:score 大於等於90為優秀,80-90為良好,60-80為及格,小於60為不及格,用sql語句統計出每個學生的成績級別。

sql:

結果:

3、綜合使用

case when 和 聚合函數綜合使用,能實現更加復雜的統計功能。

先看第1個場景

在下表 score (sex=1為男,sex=0為女)中,統計有多少個男生和女生以及男女生及格的各有多少個。

sql:

結果:

再看第2個場景

將上面的score表轉換為下面形式:

sql:

結果如下:

if函數也能通過判斷條件來返回特定值,它的語法如下:

expr是一弊穗個條件表達式,如果結果為true,則返回result_true,否則返回result_false。

用一個示例演示,還是表score:

使用if函數:

可以看出,在一些場景中, if 函數和 case when 是有同樣效果的,前者相對簡單,後者能應對更復雜的判斷。

另外,if函數還可以和聚合函數結合,例如查詢班級男生女生分別有多少人:

在java程序中調用sql語句時,如果返回結果是 null ,是非常容易引發一些意外情況的。

因此,我們希望在sql中做一些處理,如果查詢結果是 null ,就轉換為特定的值,這就要用到mysql中 ifnull 函數。

首先sql一般寫法是這樣的:

使用 ifnull 改寫一下:

但使用 ifnull 語句,如果 where 條件中的 name 值是不存在的,那麼仍將返回 null ,例如:

這時候,需要改寫成下面的形式:

在實際應用中,如果你確定 where 條件的值一定存在,使用前者就可以了,否則要用後者。

ifnull 函數也可以結合聚合使用,例如:

其他, avg 、 count 等用同樣方式處理,而且,無論 where 條件存在不存在,結果都是會返回0的。

end

引用鏈接:blog.csdn.net/mu_wind/article/details/93976316

2. sql語句中if判斷條件怎麼寫(mysql語句中if判斷條件怎麼寫)

sql語句中if判斷條件是結合select語句使用的。if函數也能通過判斷條件來返回特定值,它的語法如下:if(expr,result_true,result_false)。

expr是一個條件表達式,如果結果為true,則返回result_true,否則返回result_false。在一些場景中,if函數和casewhen是有同樣效果的,前者相對簡單,後者能應對更復雜的判斷。另外,if函數還可以和聚合函數結合。

sql其他情況簡介。

sql是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。

結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不茄中要求用戶指定對數據的存放方法,也不需要用戶了解具體的態納槐數據存放方式,所以具有完全不同底層帆友結構的不同資料庫系統,可以使用相同的結構化查詢語言作為數據輸入與管理的介面。

熱點內容
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
經典矩陣c語言 發布:2024-11-19 08:56:23 瀏覽:268
网站地图