重複した列名の使用テーブル:次の2つの同一の列gbd
があることがわかりますSQL Serverの:私はこのようなSQLクエリに副選択を作成しようとしています
SELECT
t0.id, t0.gad, t0.gbd, t0.mandant, t0.gbd, t1.year
FROM
person t0
LEFT OUTER JOIN
control t1 ON (t0.id = t1.id)
WHERE
((t0.id = '1') or (t0.id = '2'));
。ただし、このクエリは正常に実行されます。しかし、私は以下のような副選択として、このクエリを使用しようとすると、それは誤り#8156
を返し、失敗します。
SELECT *
FROM
(SELECT
t0.id, t0.gad, t0.gbd, t0.mandant, t0.gbd, t1.year
FROM
person t0
LEFT OUTER JOIN
control t1 ON (t0.id = t1.id)
WHERE ((t0.id = '1') or (t0.id = '2'))) result
WHERE
(result.gad >= 0) and (result.gbd <= 99);
私は何の意味が二度同じ列を選択するには、実際には存在しないことを知っているが、私は変更することはできません。私はデータベースからそれを読んでいるので、内部のSQLクエリ。
このクエリの目的は、結果を特定の範囲で取得することです。
私の質問は、SELECT
ステートメントを変更せずにこのクエリを動作させるにはどうすればいいですか?これはまた、列についてわからないことを意味するので、*
を特定の列名に変更することはできません。
をしかし、なぜあなたは明示的に二度同じ列を選択しますか? – jarlh
私はSQLクエリーとしてデータベースから読み込み中です。つまり、重複した列を持つ内部SQLクエリはすでに存在しています。 – Eddi
誰かがやったことのある人は、時にはそれを修正するか、それを修正する必要があるだけで、後ろに曲がる代わりに、後で回避する必要があります。 –