mysql將null轉代為0

2021-12-30 06:53:59 字數 1753 閱讀 4109

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...