-6

一致するレコードを表示しない WinForms アプリケーションで、C# Visual Studio 2012 でクエリを記述できるようにしたいと考えています。Access DB に次のようなレコードがあるとします。

JOHN SMITH MALE   19
JANE DOE   FEMALE 19
JOHN SMITH MALE   19

そして、このようなクエリ

SELECT a.NAME FROM [NAME] a WHERE a.NAME = JOHN SMITH 
//but returns both records in the table 

テーブルから 1 つのレコードを返すにはどうすればよいでしょうか? どんな助けでも大歓迎です。

4

4 に答える 4

5

これは SQL で直接行うことができます。重複していないレコードのみを取得するために
使用しますdistinct

SELECT DISTINCT a.NAME 
FROM your_table a 
WHERE a.NAME = 'JOHN SMITH'

topまたは、結果として特定の金額またはレコードのみを取得するために使用 します

SELECT top 1 a.NAME 
FROM your_table a 
WHERE a.NAME = 'JOHN SMITH'
于 2013-07-26T15:55:44.373 に答える
1

私が正しく理解している場合は、提供したクエリを変更して、返す代わりに

John Smith
John Smith

それは返すだけ

John Smith

?
それが事実なら、あなたは欲しい

SELECT DISTINCT a.NAME FROM [NAME] a WHERE a.NAME = "JOHN SMITH"

これがあなたのやりたいことではない場合は、問題をよりよく説明するために質問を更新できますか?

于 2013-07-26T15:58:33.983 に答える
0

これを C# で行うか SQL で行うかは明確ではありません。ユルゲンの答えは良いです。

C# で LINQ を使用している場合、またはある時点で LINQ を使用することにした場合は、次のように、1 行を取得するときに FirstOrDefault() オプションがあります。

return db.NameTable.Where(q => q.name == "John Smith").FirstOrDefault();
于 2013-07-26T20:12:58.517 に答える
-3

SQL ステートメントで Group By を使用する [悪いカルマの原因により参照が削除されました] または個別の [悪いカルマの原因により参照が削除されました]

于 2013-07-26T15:56:37.697 に答える