SQL视图未加入
我有两张有Zipcode的桌子,每张桌子上的Zipcode都是一样的。列数据类型相同,大小也相同。有人知道为什么我的视图没有被正确更新吗?第二个表总是显示NULL。谢谢SQL视图未加入,sql,sql-server,Sql,Sql Server,我有两张有Zipcode的桌子,每张桌子上的Zipcode都是一样的。列数据类型相同,大小也相同。有人知道为什么我的视图没有被正确更新吗?第二个表总是显示NULL。谢谢 USE [DB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER VIEW [dbo].[myview] AS SELECT dbo.Table1.Division, dbo.Table1.RegionName AS Region, dbo.Table
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[myview]
AS
SELECT dbo.Table1.Division, dbo.Table1.RegionName AS Region, dbo.Table1.AccountDir AS RegionManager, dbo.Table2.key,
dbo.Table2.ZipCode, dbo.Table3.ZipCity, dbo.Table3.ZipCounty, dbo.Table3.ZipState
FROM dbo.Table2 LEFT OUTER JOIN
dbo.Table1 ON dbo.Table2.key = dbo.Table1.key LEFT OUTER JOIN
dbo.Table3 ON dbo.Table2.ZipCode = dbo.Table3.ZipCode
ZipCodes就是这样的05412。正常的5位数拉链。我必须查看您的数据才能给出可靠的答案,但我怀疑表2中没有符合条件的记录:
dbo.Table2.key = dbo.Table1.key
由于在此条件下执行左联接,因此表1中没有匹配记录的每个记录都将返回空值
请阅读本文,以更好地了解不同类型的联接是如何工作的:
我必须查看您的数据才能给出可靠的答案,但我怀疑表2中没有符合条件的记录:
dbo.Table2.key = dbo.Table1.key
由于在此条件下执行左联接,因此表1中没有匹配记录的每个记录都将返回空值
请阅读本文,以更好地了解不同类型的联接是如何工作的:
我将提出一些建议,如果
ZipCode
字段上的数据类型是varchar
,那么您可能会遇到空白问题,因此您可以尝试修剪该值以删除任何空白。如果存在空白,则无法匹配记录:
SELECT dbo.Table1.Division,
dbo.Table1.RegionName AS Region,
dbo.Table1.AccountDir AS RegionManager,
dbo.Table2.key,
dbo.Table2.ZipCode,
dbo.Table3.ZipCity,
dbo.Table3.ZipCounty,
dbo.Table3.ZipState
FROM dbo.Table2
LEFT OUTER JOIN dbo.Table1
ON dbo.Table2.key = dbo.Table1.key
LEFT OUTER JOIN dbo.Table3
ON LTRIM(RTRIM(dbo.Table2.ZipCode)) = LTRIM(RTRIM(dbo.Table3.ZipCode))
但是您需要确保您的数据存在于所有表中。否则你就不会有结果 我将提出一些建议,如果
ZipCode
字段上的数据类型是varchar
,那么您可能会遇到空白问题,因此您可以尝试修剪该值以删除任何空白。如果存在空白,则无法匹配记录:
SELECT dbo.Table1.Division,
dbo.Table1.RegionName AS Region,
dbo.Table1.AccountDir AS RegionManager,
dbo.Table2.key,
dbo.Table2.ZipCode,
dbo.Table3.ZipCity,
dbo.Table3.ZipCounty,
dbo.Table3.ZipState
FROM dbo.Table2
LEFT OUTER JOIN dbo.Table1
ON dbo.Table2.key = dbo.Table1.key
LEFT OUTER JOIN dbo.Table3
ON LTRIM(RTRIM(dbo.Table2.ZipCode)) = LTRIM(RTRIM(dbo.Table3.ZipCode))
但是您需要确保您的数据存在于所有表中。否则你就不会有结果 使用批量加载命令上载csv时出现格式问题。。。我将其导入access数据库,然后将其导入sql数据库,没有任何问题。0dd使用批量加载命令上载csv时出现格式问题。。。我将其导入access数据库,然后将其导入sql数据库,没有任何问题。0dd您能提供代码吗?现在只是猜测。
zipcode
字段的数据类型是什么?你能为这些字段发布一些示例数据吗?您确定两个表中都有邮政编码吗?您能提供邮政编码吗?现在只是猜测。zipcode
字段的数据类型是什么?你能为这些字段发布一些示例数据吗?您确定两个表中都存在邮政编码吗?如何查看每个单元格中数据的详细信息?我已经填充了表,但是由于某种原因zipcode没有连接在一起。在表2
上选择一个,在表3
上单独选择一个,看看zipcode
字段中是否有数据。它在那里,我就是想不出为什么它没有连接在一起。@Intelwalk你能编辑你原来的问题并为它发布一些示例数据吗每张桌子?或者更好地使用数据创建一个单元格。如何查看每个单元格中数据的详细信息?我已经填充了表,但是由于某种原因zipcode没有连接在一起。在表2
上选择一个,在表3
上单独选择一个,看看zipcode
字段中是否有数据。它在那里,我就是想不出为什么它没有连接在一起。@Intelwalk你能编辑你原来的问题并为它发布一些示例数据吗每张桌子?或者更好地用这些数据创建一个