は、私は次のクエリのように、同じ名前にエイリアスへの2つの列を強制することができますようにテーブル内に列名を複製する用途はありますか? sqlite3ので
overloaded_name overloaded_name
--------------- ---------------
1 2
3 4
... ...
...と:
SELECT field_one AS overloaded_name,
field_two AS overloaded_name
FROM my_table;
それは次を返します。
私は同じ構文を使用してという名前のテーブルを作成する場合は、それが:1
とエイリアスのいずれかを追加:
sqlite> CREATE TABLE temp AS
SELECT field_one AS overloaded_name,
field_two AS overloaded_name
FROM my_table;
sqlite> .schema temp
CREATE TABLE temp(
overloaded_name TEXT,
"overloaded_name:1" TEXT
);
私はこれが可能だった場合だけ見るために元のクエリを実行し、私がいましたそれが許されたことに驚いた。これを行うには何らかの正当な理由はありますか?それがないと仮定すると、なぜこれはまったく許されますか?
EDIT:
私は明確にすべき:質問は二つです:なぜ、テーブルの作成は成功させて、(もっと重要なのは)なぜ原稿が最初の場所で許可を選択していますか?
また、テーブルの作成に関して私の説明を参照してください。
ありがとうございました!リンクされたソース(プレゼンテーション?)は面白かったですが、接線的に関連していました。さらなる参考文献を提供するほど親切であれば、私の質問に完全に答えることができるように感じます。 – Nate
@ネイト:私は私の答えの2番目の部分のリンク(ソース)を追加しました。私の答えの最初の部分については、私はそれ以上のリンクはありません。自由に利用できるSQL標準仕様は[SQL-92(draft)](http://www.contrib.andrew.cmu.edu/~shadow/)です。 sql/sql1992.txt)。私の答えの3番目の部分は完全に私の意見です:) – onedaywhen