0

これは私のテーブルコードです:

create table Names(id int, Fname varchar(40), Lname varchar(40));
insert into Names values(1, 'Zuma', 'Zytaveon');
insert into Names values(2, 'Sara', 'Luqman');
insert into Names values(3, 'Zuma', 'Zytaveon');
insert into Names values(4, 'Rafe', 'Raphael');

クエリを実行した場合

SELECT DISTINCT from Names 
WHERE Fname = 'Zuma' 
    AND Lname = 'Zytaveon'; 

私は次の出力を取得します。

1|Zuma|Zytaveon
3|Zuma|Zytaveon

クエリ結果にZumaZytaveonを1回だけ表示したいのですが、どうすれば取得できますか。ご協力いただきありがとうございます!

4

2 に答える 2

2
SELECT  DISTINCT FName, LName
from    Names 
WHERE   Fname = 'Zuma' AND Lname = 'Zytaveon';

最小のIDが必要な場合は、MIN

SELECT  MIN(ID) ID, FName, LName
from    Names 
WHERE   Fname = 'Zuma' AND Lname = 'Zytaveon'
GROUP   BY FName, LName
于 2013-03-06T08:25:43.297 に答える
0

複数の要素の結果セットから1つの要素を選択するには、さまざまな可能性があります。

  • DISTINCTキーワードを使用して、結果セットの重複を排除します。これは最初の並べ替えによって行われるため、O(N * Log N)時間がかかります(並べ替えに使用できるインデックスがない場合)。
  • MINやMAXなどの集計関数を使用すると、結果セット全体を読み取るのにO(N)時間が必要になります。
  • TOP 1構文を使用して、O(1)時間で最初に見つかった行を返します。

問題の他のビジネス要件に応じて、これらのいずれかを選択してください。

于 2013-03-06T08:38:20.967 に答える