曖昧な列名のエラーと SQL Server Alias(TSQL)
テーブルからデータを読み取るとき、テーブルと列に異なる名前を付ける必要がある場合があります。
最初の例では、テーブルに異なる名前を付けます。
例1:
私たちは通常、テーブルを結合するときにエイリアスを与える必要があります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
use
go
create table .(
identity(1,1) not null,
(50) null
) on
go
create table .(
identity(1,1) not null,
(50) null,
). on
go
insert into . VALUES (‘Nurullah’),(‘Faruk’)
INSERT INTO . VALUES (‘CAKIR’),(‘ERDEM’)
|
それから次の結合クエリを実行してみてください。
1
2
|
SELECT ,, FROM .NET.NET.COM.JP.JP.JP.JP.JP.JP.JP。
inner join . ON …=.
|
クエリを実行すると、次のようなエラーが発生します。
Msg 209, Level 16, State 1, Line 17
列名 ‘ID’ はあいまいな名前です。
エラーの原因は、ID 列が両方のテーブルに存在することです。
この場合、エイリアスを使用してクエリを記述すると、問題は解決されます。
1
2
|
SELECT tbl1.,tbl1.,tbl2. FROM .tbl1
INNER JOIN .tbl2 ON tbl1.=tbl2.
|
2番目の例では、列へのエイリアスを記述します。
例2:
最初のテーブルと第2のテーブルを結合するとき、名前と苗字を+演算子で結合します。 その結果、カラムに別名をつけてみましょう。
1
2
|
SELECT tbl1.,tbl1.SELECT tbl1.SELECT tbl1. +’ ‘+tbl2. AS ‘Name_Surname’ FROM .tbl1
INNER JOIN .tbl2 ON tbl1.=tbl2.
|