欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql中IFNULL函數(shù)舉例詳解

 更新時(shí)間:2023年07月22日 15:44:06   作者:RichardGeek  
這篇文章主要給大家介紹了關(guān)于Mysql中IFNULL函數(shù)舉例詳解的相關(guān)資料,在MySQL數(shù)據(jù)庫(kù)中IFNULL()函數(shù)用于將NULL值替換為另一個(gè)值,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下

一、概念

在mysql中IFNULL() 函數(shù)用于判斷第一個(gè)表達(dá)式是否為 NULL,如果第一個(gè)值不為NULL就執(zhí)行第一個(gè)值。第一個(gè)值為 NULL 則返回第二個(gè)參數(shù)的值。

使用技巧見(jiàn):3.2舉例二  比較常用

二、語(yǔ)法

IFNULL(a, b)

三、Demo 舉例說(shuō)明

創(chuàng)建表

create table student_one(
sno varchar(20) not null primary key,
sname varchar(20) not null,
ssex varchar(20) not null,
sbirthday datetime,
class varchar(20)
)charset=utf8;

加入數(shù)據(jù)

insert into student_one values('1','陳奇','男','2000-11-02','1');
insert into student_one values('2','陳飛','男','1999-12-05','2');
insert into student_one values('3','周杰','女','1989-03-01','3');
insert into student_one values('4','昆凌','男','1989-04-15','4');
insert into student_one values('5','王麗','女','1999-05-16','5');
insert into student_one values('6','蔡蔡','男','2000-08-17','6');

運(yùn)行結(jié)果

3.1舉例一

第一個(gè)參數(shù)不為NULL,返回第一個(gè)參數(shù),下面的代碼中’hello’不為NULL,就返回的是’hello’

SELECT IFNULL('hello', 'world');

 運(yùn)行結(jié)果

3.2.1舉例二

從student_one表里面查詢(xún)sno/sname字段,如果sno字段不為空,就返回sno字段,如果為空就返回sname字段。且取別名為‘字段結(jié)果’

SELECT IFNULL(sno,sname) AS '字段結(jié)果' FROM student_one

 運(yùn)行結(jié)果

從student_one表里面class=4的行查詢(xún)sno或者sname字段

SELECT IFNULL(sno,sname) FROM student_one WHERE class=4

 運(yùn)行結(jié)果

3.2.2 業(yè)務(wù)場(chǎng)景下使用舉例

或者 多表 字段 定義為某個(gè)字段 場(chǎng)景如:

ifnull( dga.code ,dr.code) agentCode, 含義說(shuō)明:

總代code,經(jīng)銷(xiāo)商code 作為 別名agentCode的值。

使用場(chǎng)景:當(dāng)經(jīng)銷(xiāo)商上級(jí)有總代理時(shí) 使用總代理的code,否則使用經(jīng)銷(xiāo)商的code的場(chǎng)景。

 select
        ds.type storeType,
        dr.type rtm,
        ifnull( dga.code ,dr.code) agentCode,
        ifnull(dga.agent_name_cn ,dr.name_cn) agentName,
        dr.code resellerCode,
        dr.name_cn resellerName,
        ds.code code
        FROM dg_store ds
        LEFT JOIN dg_store_type dst ON dst.id = ds.type
        LEFT JOIN dg_reseller dr ON dr.code = ds.reseller_code
        LEFT JOIN dg_general_agent dga ON dga.id = dr.agent_id

查詢(xún)結(jié)果示例如下

3.3舉例三

從student_one表里面查詢(xún)sno=10的class字段,如果表中沒(méi)有class=10的字段,就會(huì)返回0

SELECT IFNULL((SELECT class FROM student_one WHERE sno = 10),0);

 運(yùn)行結(jié)果

3.4舉例四

從student_one表里面查詢(xún)sno等于1的sname字段,如果為空,就從student_one表里面查詢(xún)sno等于2的ssex字段

SELECT IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2));

 運(yùn)行結(jié)果

從student_one表里面查詢(xún)sno等于1的sname字段,如果為空,就從student_one表里面查詢(xún)sno等于2的ssex字段。如果前面的都為空,就從student_one表里面查詢(xún)sno等于2的sbirthday字段

SELECT IFNULL(IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2)),(SELECT sbirthday from student_one WHERE sno=2));

 運(yùn)行結(jié)果

注意事項(xiàng)

1.查詢(xún)語(yǔ)句要用括號(hào)括起來(lái)

2.一個(gè)IFNULL只能對(duì)應(yīng)一條判斷語(yǔ)句,

3.IFNULL僅能查詢(xún)一個(gè)字段,否則會(huì)報(bào)錯(cuò)

總結(jié)

到此這篇關(guān)于Mysql中IFNULL函數(shù)舉例詳解的文章就介紹到這了,更多相關(guān)Mysql中IFNULL函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論