***sql case when then end 用法
一.控制流程函式
1.case value when [compare-value] then result [when [compare-value] then result ...] [else result] end case when [condition] then result [when [condition] then result ...] [else result] end
該語句用於在不同情況時,執行不同的語句,例項如下:
eg1. select case when 1>0 then 'true' else 'false' end;
輸出:true
eg2. select case binary 'b' when 'a' then 1 when 'b' then 2 end;
輸出:null
2.if(expr1,expr2,expr3)
如果expr1返回true,則該表示式返回expr2,否則返回expr3。
eg1. select if(1<2,'yes ','no');
輸出:'yes '
eg2. select if(strcmp('test','test1'),'no','yes');
上例中strcmp(expr1, expr2)這個函式在expr1小於expr2時,返回-1,相等時返回0,其餘的情況返回1,在上例中返回-1,因此上例的輸出為:'yes'
3.ifnull(expr1,expr2)
該函式在expr1為null時,返回expr2,否則,返回expr1。
eg1. select ifnull(1,0);
輸出:1
eg2. select ifnull(null,10);
輸出:10
4.nullif(expr1,expr2)
如果expr1=expr2,則返回null,否則,返回expr1。
eg1. select nullif(1,1);
輸出:null
eg2. select nullif(3,4);
輸出:3
mysql流控制 mysql 控制流函式
ifnull expr1,expr2 如果 expr1 為非 null 的,ifnull 返回 expr1,否則返回 expr2。ifnull 返回乙個數字或字串值 mysql select ifnull 1,0 1 mysql select ifnull null,10 10 如果 expr1 e...
資料庫版本控制
資料庫的版本控制與 版本控制的區別在於資料庫中的生產資料是現場創造的,當我們的表結構發生改變時,不能直接用drop table然後再create table,因為這樣會導致生產資料丟失。而 則完全由開發人員創造,可以用完全覆蓋的方式公升級。由於這點不同,致使資料庫在版本控制的過程中必然要採 用與 不...
資料庫併發控制
資料庫併發控制 1 在資料庫中為什麼要併發控制?答 資料庫是共享資源,通常有許多個事務同時在執行。當多個事務併發地訪問資料庫時就會產生同時讀取和 或修改同一資料的情況。若對併發操作不加控制就可能會訪問和儲存不正確的資料,破壞資料庫的一致性。所以資料庫管理系統必須提供併發控制機制。2 併發操作可能會產...