我真的一直在努力解決這個問題,我有 2 個具有相同結構的表,如下所示:
registerationNumber int, CompanyName nvarchar, areaName nvarchar,phoneNumber int , email nvarchar, projectStatus nvarchar
資料型別為 nvarchar 的所有列都包含阿拉伯文本,除了 email 列,tableA 包含 675 行,tableB 包含 397 行,所有這些都存在于 tableA 我想要做的是從 tableA 中選擇不匹配的行,它們應該是 675 - 398 = 277行
每次運行 where 子句時,我都會回傳所有表
我寫的join子句是這樣的:
select a.registerationNumber
from tableA a left outer join tableB b
on a.registerationNumber = b.registerationNumber
但我沒有得到任何結果,我嘗試了所有型別的連接,但得到了相同的結果。
我創建了一個示例資料庫并在表中插入了英文資料,它與以下子句一起作業得很好:
select * from tblAllProjects a right join tblhalfProjects h
on a.registerationNumber = h.registerationNumber
這意味著我正在撰寫正確的語法,我知道我應該在選擇阿拉伯文本時使用以下語法:
Select * from tableA where comanyName like N'arabic_text'
任何人都知道似乎是什么問題?
uj5u.com熱心網友回復:
我的意思是說你應該這樣做:
select a.registerationNumber
from tableA a left outer join tableB b
on a.registerationNumber = b.registerationNumber
where b.registrationNumber is NULL
這應該從 tableA 中選擇所有 registrationNumbers,在 tableB 中沒有匹配項。
另一種寫法(但可能更慢)是:
select a.registerationNumber
from tableA a
where a.registerationNumber not in (
select b.registerationNumber
from tableB )
如果從子查詢回傳的記錄只有“少數”,則您應該/可以使用第二種方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401779.html
標籤:加入
上一篇:Python-加入命題
