2012-04-11 12 views
0

ソリューション:https://stackoverflow.com/a/439768/857994は、次のコードを与える:T SQL - なぜここでASは必要ありませんか?

DELETE TableA 
    FROM TableA a 
    INNER JOIN 
    TableB b on b.Bid = a.Bid 
    and [my filter condition] 

私の質問は:

我々はエイリアステーブルAからここまでのようにする必要はありませんどのように来ますか? SELECT E.FirstName FROM Employee AS E;のような選択クエリでASが必要ないのですか?

違いは何ですか?

+0

「私はしないでしょうか?おそらく私達は試みることができますか? – AakashM

+0

正直なところ、私はそれが私に(新しい仕事)それらを与えるまで管理者権限のないコンピュータに立ち往生しています。なぜなら、それがうまくいけば、それはなぜですか? –

+0

SELECT文を実行するのになぜ管理者権限が必要なのですか? –

答えて

3

「AS」キーワードはオプションです。 SELECTクエリでもその必要はありません。 (!それを試してみてください)

はここでMSDNから「FROM」の構文の一部です:あなたが見ることができるように

[ FROM { <table_source> } [ ,...n ] ] 
<table_source> ::= 
{ 
    table_or_view_name [ [ AS ] table_alias ] [ <tablesample_clause> ] 
    ... 
} 

[ AS ]はそれはオプションだ意味し、括弧です。あなた決してそれを追加する必要がありますが、私はそれがクエリをより読みやすくすると主張するかもしれないと思うかもしれません。私は同意しませんが、それは個人的な好み(またはあなたのDBAの個人的な好み)の問題です。

詳細はhttp://msdn.microsoft.com/en-us/library/ms177634.aspxを参照してください。

+0

ありがとうございます。 –

-1

FROM句でテーブル名をエイリアスするときに、選択する列名のエイリアスを行うときには、ASが必要です。そして、いいえ、その2番目の短いSELECTでASは必要ありません。

「これは、定義された言語の構文です」以外の理由はありません。私は、言語デザイナーの秘密隠された動機を第二に推測しようとするとうまくいかないことが分かりました。

+0

これです。テーブルのFROMではなく、列のSELECT文で必要になります。 –

+1

「これ」は残念ながら単に間違っています。 [SELECT節のドキュメント](http://msdn.microsoft.com/en-us/library/ms176104.aspx)は、列エイリアスの「AS」が**オプション**であることを明確に示しています。それを試してみてください。 – AakashM

+0

カラムエイリアスには "AS"は必要ありません。これらはうまく動作します: 'SELECT Column1 alias1 FROM MyTable;または' SELECT alias1 = Column1 FROM MyTable; ' –

関連する問題