数据

当前位置:永利皇宫463登录 > 数据 > 值替换为指定值的三种方法分享,关键字在值为

值替换为指定值的三种方法分享,关键字在值为

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-10-29 12:14
create table test(keyId int identity, info varchar(30))
go
insert into test(info)values('a'),('b'),(null),('d')
go 
---方法1:使用isnull替换
select keyId,isnull(info,'替换null值') as info from test 
go 
---方法2:使用case when 替换
select keyId,case when info is null then '替换null值' else info end as info from test 
---方法3:使用coalesce替换相应的值
select keyId , coalesce(info,'替换null值') as info from test 

go 
truncate table test 
drop table test  

摘要:
下文通过案例分析in 关键字在值为null的运用比方,
解析出not in关键字在null值发生的不行消息
日常来讲所示:

摘要:

CREATE TABLE testA(keyId INT)
CREATE TABLE testB(keyId INT)
GO
INSERT INTO testA(keyId) VALUES (1)
INSERT INTO testA(keyId) VALUES (2)
INSERT INTO testA(keyId) VALUES (3)
GO
INSERT INTO testB(keyId) VALUES (1)
INSERT INTO testB(keyId) VALUES (2)
INSERT INTO testB(keyId) VALUES (4)
INSERT INTO testB(keyId) VALUES (NULL)
GO
 SELECT * FROM testA WHERE keyId IN (SELECT keyId FROM testB)
-----输出------
/*
keyId
1
2
*/
 SELECT * FROM testA WHERE keyId not IN (SELECT keyId FROM testB)
------无输出记录-----
/*
keyId
*/
INSERT INTO testA VALUES (NULL) ---在testA表中插入空值
SELECT * FROM testA WHERE EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
----输出----
/*
keyId
1
2
*/
SELECT * FROM testA WHERE not  EXISTS(
    SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
)
/*
keyId
3
NULL
*/
SELECT * FROM testA WHERE testA.keyId NOT in (
    SELECT testB.keyId FROM testB WHERE testB.keyId IS NOT NULL    
)

drop table testA
drop table testB

例: 

经过以上测验,大家能够看出not in 查询关键字若是子表中设有空值,则无法查询出其余记录,会招致万分发生,
需使用not exists获取相应的空值音信

下文将享用三种将字段中null值替换为钦命值的措施分享,如下所示:
尝试情形:sqlserver 二零零六 Enclave2

 

 

转自:http://www.maomao365.com/?p=6873

转自:http://www.maomao365.com/?p=6965  


本文由永利皇宫463登录发布于数据,转载请注明出处:值替换为指定值的三种方法分享,关键字在值为

关键词:

上一篇:没有了

下一篇:没有了