Sql server 使用“选择到不存在的位置”查询时发生SQL错误

Sql server 使用“选择到不存在的位置”查询时发生SQL错误,sql-server,select,insert,where,Sql Server,Select,Insert,Where,我正在尝试将一个表插入另一个表中 insert into list2([PHONE]) select [column 0] + [column 1] as PHONE from [list1] where not exists (select * from list2 where list2.phone = [list1].phone) 但我有一个错误: 味精207,16级,状态3,第1行 列名称“phone”无效。 在列表2中,有两列,电话和区号。电话有完整的电话号码,区号有区号 在列表

我正在尝试将一个表插入另一个表中

insert into list2([PHONE])
select [column 0] + [column 1] as PHONE
from [list1]
where not exists (select * from list2
where list2.phone = [list1].phone)
但我有一个错误:

味精207,16级,状态3,第1行 列名称“phone”无效。

在列表2中,有两列,电话和区号。电话有完整的电话号码,区号有区号

在列表1中,还有两列,第0列有区号,第1列是电话号码的前6位数字


我做错了什么?

不允许引用从WHERE子句在SELECT列表中构造的列别名:

或者,您可以将phone列的构造放入FROM子句中的子查询中:


不允许引用在WHERE子句的SELECT列表中构造的列别名:

或者,您可以将phone列的构造放入FROM子句中的子查询中:


列名是否区分大小写?我假设SQL Server提供了错误消息的格式。如果这是错误的,请使用适当的数据库系统重新标记。列名是否区分大小写?我假设SQL Server提供了错误消息的格式。如果这是错误的,请使用适当的数据库系统重新标记。
insert into list2([PHONE])
select [column 0] + [column 1] as PHONE
from [list1]
where not exists (select * from list2
where list2.phone = [list1].[column 0] + [list1].[column 1])
insert into list2([PHONE])
select PHONE
from (select [column 0] + [column 1] as PHONE from [list1]) l1
where not exists (select * from list2
where list2.phone = l1.phone)