2013-07-26 4 views
-6

Я хочу, чтобы иметь возможность писать запрос в C# Visual Studio 2012 в приложении WinForms, которое не будет отображать соответствующие записи. Скажем, у меня есть запись в БД Access, который читает,Запрос, чтобы избавиться от совпадающих записей C#

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 

Как бы я быть в состоянии только вернуть одну единственную запись из таблицы? Любая помощь приветствуется.

+0

у вас есть первичный ключ на вашем столе ? –

+5

Различное ключевое слово – MrFox

+0

Попытайтесь использовать дополнительный запрос с статусом NOT IN. http://www.techonthenet.com/sql/in.php –

ответ

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' 
+1

Он сказал в ** C# ** – dtsg

+2

Он также говорит * Я хочу, чтобы иметь возможность написать запрос в C# *, который это .. –

+2

И я рекомендую сделать это непосредственно в SQL. –

-3

Использование групповой By в вашем SQL Statement [ссылка удалена " причина плохой кармы] или отдельная [ссылка удалена причина плохой кармы]

+2

Отказ от ответственности: я не ограничил вас, но мы обычно рассматриваем w3schools как [плохой ресурс] (http://www.w3fools.com/). Кроме того, лучшие ответы включают примеры кода, а также ссылки на внешние ресурсы. – jwiscarson

+1

jajaja OK. Я знаю, что у многих людей есть конфликт, потому что w3cschool не связаны с w3c; нет проблем ... хорошо знать, что ... – mtzaldo

1

Если я правильно понял, вы хотите изменить запрос, который вы поставили, чтобы вместо возврата

John Smith 
John Smith 

он возвращает только

John Smith 

?
Если это так, то вы хотите

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

Если это не то, что вы хотите сделать, то, возможно, вы могли бы обновить свой вопрос, чтобы лучше объяснить вашу проблему?

0

Не совсем понятно, хотите ли вы сделать это на C# или SQL. Ответ Юргена хорош.

Если вы используете, или в какой-то момент решили использовать LINQ в C#, есть вариант FirstOrDefault() при получении одной строки, например:

return db.NameTable.Where(q => q.name == "John Smith").FirstOrDefault(); 
Смежные вопросы