3

テーブルのエイリアスに取り組んでいるときに問題が発生し、奇妙な問題に遭遇しました。テーブル エイリアスを使用していない場合は列名として null を使用できますが、テーブル エイリアスを使用すると問題が発生します。

works!

select top 10 eid, null as emp_no from employee 

does not work!!

select top 10 e.eid, null as e.emp_no from employee e

抜け道はありますか?別のテーブルに参加すると問題が発生します。

Trying to make it work !

select top 10 e.eid, null as e.emp_no, ed.desgination from employee e 
inner join employee_designations ed on e.eid=ed.eid


Error 

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
4

2 に答える 2

0

100% 確実ではありませんが、列に値を割り当てると、これはもうテーブルの列ではなく、単なる「仮想」列であるため、このエラーがスローされます。そのため、テーブルのエイリアスを指定することはできません。これは単に列テーブルではないため、この列に

なぜ?Ambiguous column nameテーブルに同じ列名がある場合はスローバックしますが、値を割り当てているため、この列名を取得していnull as emp_noません。この emp_no は内部結合シンタックスの列ではないため、クエリシンタックスで簡単に実行できます、単に呼び出してみてください:

select top 10 e.eid, null as emp_no, ed.desgination from employee e 
inner join employee_designations ed on e.eid=ed.eid
于 2013-11-08T01:57:40.017 に答える