为已存在的列获取无效的列名称?

问题描述 投票:0回答:2

我正在尝试使用数据库中另一个导入表中的值填充数据库中的表。在使用 INSERT INTO 语句之前,我尝试单独运行 select 语句来验证我是否会获得正确的值,但遇到了此错误。我已经阅读了关于同一问题的其他几个线程,但无法弄清楚我的具体出了什么问题。

(使用 Azure Data Studio,如果这是有用的信息)。这是我的代码(下面也链接了屏幕截图)--

        SELECT DISTINCT 
        StateAbbr,
        [State],
        Longitude,
        Latitude,
        Zipcode,
        City,
        [Population]
    FROM BehaviorCoverageMerged b
        JOIN
            (SELECT
                Zipcode,
                City,
                [Population]
            FROM [2010ZipData]) z 
            ON [b].[StateAbbr] = [z].[StateAbbr];
    GO

我不断得到

消息 207,第 16 级,状态 1,第 14 行
列名“StateAbbr”无效。

该列确实存在于我的数据库的表中,所以我不知道问题是什么。有谁知道为什么会发生这种情况?还附上两张屏幕截图 - 一张是查询和错误消息,另一张是表架构(列所在的位置)。非常感谢任何帮助!

Query & error message Column names in table

sql sql-server
2个回答
0
投票

您需要从

 中的 
StateAbbr
 中选择 
2010ZipData

        SELECT DISTINCT 
        b.StateAbbr,           -- changed
...
                Zipcode,
                City,
                [Population]
                , StateAbbr  -- added
            FROM [2010ZipData]) z 

但是您应该能够在没有第二次选择的情况下加入:

        SELECT DISTINCT 
        b.StateAbbr,           -- changed
        [State],
        Longitude,
        Latitude,
        Zipcode,
        City,
        [Population]
    FROM BehaviorCoverageMerged b
            FROM [2010ZipData] z 
            ON [b].[StateAbbr] = [z].[StateAbbr];
    GO

0
投票

我不确定为什么现在会发生这种情况,但请更改您的 From 语句以开始:

来自(从BehaviorCoverageMerged中选择*)b

© www.soinside.com 2019 - 2024. All rights reserved.