1、如果為空返回0
select ifnull(null,0)
應用情景,如果在進行右連線或者左連線時,有一些為空的字段,可以進行這樣的處理。 select ifnull( (b.submission_time-a.submission_time),0) from a right join b on 條件。
2、如果為空返回0,否則返回1
select if(isnull(col),0,1) as col.
mysql 中的ifnull函式說明:
ifnull(expr1,expr2)
如果expr1不是null,ifnull()返回expr1,否則它返回expr2。
ifnull()返回乙個數字或字串值,取決於它被使用的上下文環境。
mysql> select ifnull(1,0);
-> 1
mysql> select ifnull(0,10);
-> 0
mysql> select ifnull(1/0,10);
-> 10
mysql> select ifnull(1/0,'yes');
-> 'yes'
if(expr1,expr2,expr3)
如果expr1是true(expr1<>0且expr1<>null),那麼if()返回expr2,否則它返回expr3。
if()返回乙個數字或字串值,取決於它被使用的上下文。
mysql> select if(1>2,2,3);
-> 3
mysql> select if(1<2, 'yes', 'no');
->'yes'
mysql> select if(strcmp('test','test1'),'yes','no');
-> 'no'
expr1作為整數值被計算,它意味著如果你正在測試浮點或字串值,你應該使用乙個比較操作來做。
mysql> select if(0.1,1,0);
-> 0
mysql> select if(0.1<>0,1,0);
-> 1
在上面的第一種情況中,if(0.1)返回0,因為0.1被變換到整數值, 導致測試if(0)。這可能不是你期望的。
在第二種情況中,比較測試原來的浮點值看它是否是非零,比較的結果被用作乙個整數。
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
第乙個版本返回result,其中value=compare-value。第二個版本中如果第乙個條件為真,返回result。如果沒有匹配的result值,那麼結果在else後的result被返回。如果沒有else部分,那麼null被返回。
mysql> select case 1 when 1 then "one" when 2 then "two" else "more" end;
-> "one"
mysql> select case when 1>0 then "true" else "false" end;
-> "true"
mysql> select case binary "b" when "a" then 1 when "b" then 2 end;
-> null
mysql8 null轉0 處理 NULL 值
3.3.4.6 處理 null 值 在你習慣之前,null 值可能會讓你感到驚訝.從概念上講,null 意味著 丟失的未知值 它的處理方法與其他值有些不同.對 null 進行測試,使用 is null 和 is not null 操作符,如下所示 sql mysql select 1 is null...
mysql表的轉置 如何將mysql錶行轉置為列
這是我當前的mysql表的樣子 punchid empid punchevent punchdatetime 1 0456 clockin 5 14 2013 8 36 26 am 48 0456 breakout 5 14 2013 12 01 29 pm 53 0456 breakin 5 14...
mysql 查詢24小時內 資料,null用0代替
獲取24小時資料總數,但是當某乙個小時內沒有產生資料時,group by就篩選不出來那個時間段的資料,但實際需求是要用0代替。解決方法如下 select dayhour,if count is null,0,count from select count as count,date format c...