は句

2016-04-06 9 views
0

の順で使用されるこれはに関連している: Why is selecting specified columns, and all, wrong in Oracle SQL?は句

クエリ:

select is_parent, animals.* from animals order by is_parent 
is_parentが複製されたとして理にかなって

[Error] ORA-00960: ambiguous column naming in select list 

でエラーが発生します。

元のクエリselect is_parent, animals.* from animalsは他のすべての列を返すのが非常に素早く、誰でも簡単な修正方法を教えてもらえますか?私はこのlinkを見ましたが、あいまいさを取り除くテクニックは当てはまりません。

+2

を選択してください。is_parent1 ... order by _parent1 – jarlh

+0

あなたが選択している複数のものを持っているときに、最も便利ではない場合は、可能です。 – Alex

答えて

-1

*なぜすべての列が返されるので、列名を複製していますか?

いずれかのこの

select animals.* from animals order by is_parent 

または明示的にすべての列

+0

テーブルに何百もの列が含まれているため、重要なものを最初に出し、残りのものを診断に使用します。リンクされた質問は、なぜこのクエリ構造が非常に便利であるかの例を提供します。 – Alex

+0

@Alexその後、エイリアスする必要があります。そうでなければ、コンパイラを混乱させ、そのエラーを受け取ります。 –

1

は、エイリアス名を使用して入力を使用しています。同様に:

select is_parent as check_is_parent, animals.* from animals order by is_parent 
0

私はきちんとした解決策で私はエイリアスを使用していない場合、私は、コンパイラを混乱になると言うことは非常に有用なコメントや回答のおかげで出てくるために管理しています。私は複数の列を選択した場合、私は、列の名前を変更する必要が見つけ

は、例えば煩わしく:

select is_parent, age, animals.* from animals order by is_parent, age 

迅速かつ汚いソリューションは、列番号を使用して注文するには、Oracleを伝えることです:

select is_parent, age, animals.* from animals order by 1, 2 

これは列名のあいまいさを取り除きます。

1

あなたは2回is_parent列を取得します。そのため、あいまいさが発生します。同様 使用別名:

select is_parent as is_parent1, animals.* from animals order by is_parent1

1

Oracleはエラーがスローされますので、同じ名前を持つ2列名は、とがあります。列名に別名を使用してください。

select is_parent as PARENT, animals.* from animals order by is_parent 

私のために働いてください。

2

あなたが試すことができます何か:

1)ORDER BY句でテーブル名(またはそのエイリアス)を使用します。

SQL> select is_parent, animals.* 
    2 from animals 
    3 order by animals.is_parent; 

no rows selected 

2)内のフィールドの位置に基づいて、あなたの順序の句を書きますあなたの選択リスト:

SQL> select is_parent, animals.* 
    2 from animals 
    3 order by 1; 

no rows selected 

3)明示的に書かれたカラムのエイリアスを使用します。

SQL> select is_parent as parent, animals.* 
    2 from animals 
    3 order by is_parent; 

no rows selected 

これらのソリューションのそれぞれは、多かれ少なかれ読みやすいかもしれません。 2番目は最も簡単なもので、 "最も重要な"フィールドで注文する必要があります。 しかし、私はワンショットクエリーのためにそれらを使用して、アプリケーションを書く際にこれらのどれもお勧めしません。

+0

これは最も完全な答えのようです。私はオプション2を使用して終了しました。私のケースでは、余分なテキストを追加するのではなく、order句で列番号を使用するほうがはるかに簡単です。 – Alex