我將視圖複製到新表中。但是,某些記錄存在於視圖中,但不在表格中。缺失記錄
而且,我無法找到所有失蹤的記錄,當我使用SELECT ... NOT IN:
DECLARE @email NVARCHAR(256)='[email protected]'
SELECT Email FROM dbo.vw_DirectoryData WHERE [email protected]
SELECT Email FROM dbo.tblDirectoryData WHERE [email protected]
SELECT Email FROM dbo.vw_DirectoryData WHERE email NOT IN(SELECT email FROM dbo.tblDirectoryData)
Result:
Email
[email protected]
(1 row(s) affected)
Email
(0 row(s) affected)
email
(0 row(s) affected)
我嘗試另一個approche:
DECLARE @email NVARCHAR(256)='[email protected]'
SELECT vw_DirectoryData.Email, tblDirectoryData.Email AS [Email in Table]
FROM vw_DirectoryData LEFT OUTER JOIN
tblDirectoryData ON vw_DirectoryData.Email = tblDirectoryData.Email WHERE [email protected]
SELECT vw_DirectoryData.Email, tblDirectoryData.Email AS [Email in Table]
FROM vw_DirectoryData LEFT OUTER JOIN
tblDirectoryData ON vw_DirectoryData.Email = tblDirectoryData.Email WHERE tblDirectoryData.Email IS null
Result:
Email
Email in Table
[email protected]
NULL
(1 row(s) affected)
Email Email in Table
(0 row(s) affected)
任何意見如何克服這種問題?
如果您使用子查詢方法,您需要明確指出您擁有哪些表的電子郵件地址。但更好的方法可能是使用EXCEPT。 https://msdn.microsoft.com/en-us/library/ms188055.aspx –
** ** 1:是否有名爲'Email'和'email'(低和大寫名稱),或者不同的領域,你使用不區分大小寫的排序規則,允許您引用獨立於大小寫的列名稱? ** 2 **:視圖和表格匹配的行數(即COUNT(*)')是否相同? 'COUNT(DISTINCT Email)'怎麼樣? – Phylyp