2009-05-03 7 views
2

選択クエリで重複行が選択されないようにするにはどうすればよいですか?Oracleの重複する行

私は、次のフィールドを持つテーブルがある:

  • タイプ
  • user1の
  • user2の
  • user3に

私のクエリは、私を必要としt o特定のユーザのデータをフロントエンドでユーザが入力したときにのみ選択する。ユーザが1を入力すると、選択クエリはユーザ1のデータのみを取得するはずである。

私は現在、このようにそれをやっている:

select name,type,date from table1 order by user1; 

しかし、私は結果に冗長行を取得しています?

私は間違っているのですか?これらの重複行を避けるにはどうすればよいですか?

助けてください...

答えて

4

SELECT DISTINCTオプションを使用するか、GROUP BY句を使用します。あなたはまた、日付の列を持っていて、Oracleでは安全であるように時間があることを意味しています。日付の列を切り捨ててください。たとえあなたが時間を知っていても、挿入の切り詰めの部分はとにかくありません。それは良い練習は、あなたが時間があると考えるあなたが日付を参照してください。

次の問題は、SELECTの一部ではない列にORDER BYを使用できないことです。

私の推薦はGROUP BYです。


SELECT user1, name, type, TRUNC(date) date 
FROM Table1 
GROUP BY user1, name, type, TRUNC(date) 
ORDER BY user1 
1

は、私は完全にあなたの質問を取得する場合、私は知らない

6

DISTINCT SELECTしてみてください。しかし、私はとにかくしようとします:TABLE1 ユーザー= [WHATEVERユーザーから

選択し、名前、タイプ、「日付」 :

  1. すると、ユーザー入力の試行に基づいて特定のユーザーにフィルタリングする場合INPUTS]名前で ため

  2. あなたが別の列を選択したい場合は(ユーザー1、ユーザー2、ユーザー3)ユーザ入力試みに応じて:

    選択し、名前、タイプ、「日付」、デコード(YOUR名前でTABLE1 ため

  3. から_USER_INPUT、1、USER1、2、user2は、3、ユーザー3) あなたはだけの異なる結果をしたい場合は、種類、明確な名前を選択する明確な

    を選択を試してみてください、我々はそれに応じて助けることができるので、 "日付"、ユーザー1、ユーザー2は、ください

TABLE1から USER3
は例を提供します。幸運、gudluck