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)

しかし、私はエラーが発生しています:

Msg 207, Level 16, State 3, Line 1 Invalid column name 'phone'.

には2list2つの列があり、phonearea code. phone完全な電話番号とarea code市外局番があります。

には、市外局番と電話番号の最初の 6 桁の2list1つの列もあります。column 0column 1

私は何を間違っていますか?

4

1 に答える 1

4

SELECTからリストで作成した列エイリアスを参照することはできません。WHERE

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])

または、列の構築を句phone内のサブクエリに配置することもできます。FROM

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)
于 2012-10-09T14:41:35.583 に答える