クエリすると
select distinct Name from Emp;
従業員表
ID名 1サム 2 トム 3 サム
このクエリは、重複した名前または最後の個別の名前 (ID=3) から最初の個別の名前 (ID=1) を返しますか?
このコンテキストで、distinct キーワードは実際にどのように機能しますか?
ここには誤解があると思います。クエリはレコードを返さず、個別の列値のみを返します。あなたの例では、「サム」と「トム」です。
安全に期待できる特定の順序はありません。自然な順序、またはデータベースで処理される順序 (完全にデータベースの実装に依存)、または半ランダム (セット内のアイテムの反復など) の場合があります。結果がデータから取得されたか、キャッシュから取得されたかによっても、順序が異なる場合があります。
特定の注文が必要な場合は、それを注文基準として指定します。
select distinct Name from Emp order by Name asc
個別の値とそれを含む最初のレコードが必要な場合は、次を使用しますgroup by
。
select min(ID), Name from Emp group by Name