isnull
函式接受乙個引數,並測試該引數是否為null。如果引數為null
,則isnull
函式返回1
,否則返回0
。
下面說明了isnull
函式的語法:
isnull(expr)
請考慮以下示例:
select isnull(null); -- 1
select isnull(1); -- 0
select isnull(1 + null); -- 1;
select isnull(1 / 0 ); -- 1;
請注意,如果您嘗試找到microsoft sql server的isnull
函式的mysql替代方法,則應該使用mysql的ifnull函式。 因為isnull
函式在mysql中與microsoft sql server的isnull
函式是不同的。
isnull
函式與is null
運算子共享一些行為。 例如,如果您將date
型別的列宣告為not null,則可以使用以下語句查詢特殊日期「0000-00-00」
:
select
*from
table_name
where
isnull(date);
請注意,mysql故意實現此函式來支援odbc應用程式,因為odbc不支援特殊日期值我們來看下面的乙個例子。'0000-00-00'
。或者修改以下值為:sql_mode=no_auto_create_user,no_engine_substitution
,官方手冊參考:
首先,建立乙個名為special_isnull
的新錶,如下所示:
use testdb;
drop table if exists special_isnull;
create table special_isnull (
start_date date default null
);
其次,將一些資料插入到special_isnull
表中:
insert into special_isnull(start_date)
values('2000-01-01'),('0000-00-00'),(null);
注意:mysql 5.7 中不允許插入0000-00-00
值
第三步,使用isnull
函式從special_isnull
表查詢資料:
select
*from
special_isnull
where
isnull(start_date);
執行上面查詢語句,得到以下結果 -
+------------+
| start_date |
+------------+
| null |
+------------+
1 row in set
查詢返回一行,而您可能希望返回乙個空結果集。
當您要取消is null
運算子時,可以使用not
運算子,即is not null
。 但是,對於isnull
函式,可以使用!isnull
。
在本教程中,您已經學習了如何使用mysqlisnull
函式及其特殊行為來處理null
值。
常用基本函式
1 清屏 clc 清除命令視窗 clear command window 清除命令視窗 clear 清除所有變數 clf 清除圖形 舊版本中可以使用 clg 2 隨機數生成 rand n 生成n階隨機方陣,隨機數範圍0 1 rand m,n 生成m n階的隨機矩陣,隨機數範圍0 1 randn n ...
前言 基本函式
wsa是windows socket api簡稱 1 在delphi用這些api時,應先先明 wsastartup 初始 wsacleanup 登出 後面介紹一些簡單函式的使用 我也是學了再寫,說錯的地方指明,這既是自己的筆記 也是大家的參考 2 socket函式 用於生成socket soket ...
Sql Server 基本函式
sql server基本函式 大家在程式設計的時候,絕大多數時是離不開與資料庫打交道的,大家在對資料庫的資料進行處理時,往往是先讀取資料庫的記錄後,然後通過程式語言對其進行加工處理後,再存到資料庫。但有時候通過若sql自帶的函式來對資料進行處理,不但能直接獲取自己所需的結果,還能節省不少自己的程式 ...