NULL對IN的查詢的影響及解決示例 sql

2021-09-08 03:33:10 字數 1282 閱讀 8402

--1. null 對 in(not in) 查詢的影響

--測試資料

declare @1 table(col1 int)

insert @1 select 1

union all select null

union all select 2

declare @2 table(col1 int)

insert @2 select 1

--查詢

select [@1總記錄數]=count(*) from @1

--結果: 3

select [@1在@2表中存在的記錄數]=count(*) from @1 a

where col1 in(select col1 from @2)

--結果: 1

select [@1在@2表中存在的記錄數]=count(*) from @1 a

where col1 not in(select col1 from @2)

--結果: 1

--在@2中插入一條null值

insert @2 select null

select [@1在@2表中存在的記錄數]=count(*) from @1 a

where col1 in(select col1 from @2)

--結果: 1

select [@1在@2表中存在的記錄數]=count(*) from @1 a

where col1 not in(select col1 from @2)

--結果: 0

go--2. 使用 exists 代替in

--測試資料

declare @1 table(col1 int)

insert @1 select 1

union all select null

union all select 2

declare @2 table(col1 int)

insert @2 select 1

union all select null

select [@1在@2表中存在的記錄數]=count(*)

from @1 a

where exists(select * from @2 where col1=a.col1)

--結果: 1

select [@1在@2表中存在的記錄數]=count(*)

from @1 a

where not exists(select * from @2 where col1=a.col1)

--結果: 2

NULL對IN的查詢的影響及解決示例 sql

1.null 對 in not in 查詢的影響 測試資料 declare 1 table col1 int insert 1 select 1 union all select null union all select 2 declare 2 table col1 int insert 2 se...

oracle 中null 值對排序的影響

size large color red oracle 中null 值對排序的影響 color size size medium 問題處理 方法1 使用nvl函式 語法 nvl expr1,expr2 若expr1是null,則返回expr2,否則返回expr1.認識了nvl的語法,就可以在排序中使...

MYSQL NULL 對查詢的影響

在建立表時,經常要給某些列設定 not null 的約束。可是為什麼我們盡量不使用 null 呢?這裡記錄幾個簡單的例子 在使用 distinct 時,null 也被視為一類資料,null 存在於多行中時,也會被合併為一條 null 的資料.所有包含 null 的計算,結果必然是 null。如 1 ...