sqlserver在過濾數據的時辰,有時辰需要利用大于、小于、不等于查詢過濾數據,那么,在分歧數據類型,可是可以隱式轉換的類型之中,若何利用不等值查詢呢?
建立一個姑且表,用于演示sqlserver語法中大于、小于、不等于的毗連查詢
IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 varchar(200),
Col3 int,
Col4 datetime
);
建立別的一個姑且表,用于演示sqlserver語法中大于、小于、不等于的等值毗連查詢
IF OBJECT_ID('tempdb..#tmp2') IS NOT NULL DROP TABLE #tmp2;
CREATE TABLE #tmp2(
Col1 varchar(50),
Col2 varchar(200),
Col3 decimal(18, 4),
Col4 varchar(50)
);
往姑且表中插入幾行測試數據,此中部門數據在兩個表固然數據類型分歧,可是插入不異的值
insert into #tmp1(Col1, Col2, Col3, Col4) values('Code1', '第1行', 1, '2019-04-25');
insert into #tmp1(Col1, Col2, Col3, Col4) values('Code10', '第2行', 10, '2019-04-26');
insert into #tmp1(Col1, Col2, Col3, Col4) values('Code100', '第3行', 100, '2019-04-27');
insert into #tmp2(Col1, Col2, Col3, Col4) values('Code1', NULL, 12, '2019-04-25');
insert into #tmp2(Col1, Col2, Col3, Col4) values('Code10', '第2行', 5, '2019-04-26');
insert into #tmp2(Col1, Col2, Col3, Col4) values('Code100', '第N行', 105, '2019-04-30');
查詢姑且表中的測試數據
select * from #tmp1;
select * from #tmp2;
利用INNER JOIN聯系關系兩張表,查詢Col2字符串列值不相等的成果,利用一個小于符號加一個大于符號暗示不等于(<>)。
注重:null在sqlserver中比力出格,即使利用字符串與null做不等于比力,也不會返回成果
select *
from #tmp1 a
inner join #tmp2 b on b.Col1 = a.Col1
where a.Col2 <> b.Col2
2若何查詢的成果利用
利用INNER JOIN聯系關系兩張表,查詢int類型的數字比decimal類型數字大的成果,直接利用大于符號比力即可
select *
from #tmp1 a
inner join #tmp2 b on b.Col1 = a.Col1
where a.Col3 > b.Col3
利用INNER JOIN聯系關系兩張表,查詢detatime類型的日期比字符串類型日期小的成果,直接利用小于符號比力即可
select *
from #tmp1 a
inner join #tmp2 b on b.Col1 = a.Col1
where a.Col4 < b.Col4
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!