查询摆脱匹配记录C#

时间:2013-07-26 15:53:58

标签: c# sql winforms ms-access

我希望能够在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 

我怎样才能从表中返回一条记录?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分: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 :(得分:1)

如果我理解正确,您希望修改您提供的查询,而不是返回

John Smith
John Smith

它只返回

John Smith


如果是这种情况,那么你想要

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

如果这不是您想要做的,那么也许您可以更新您的问题以更好地解释您的问题?

答案 2 :(得分:0)

目前尚不清楚是否要在C#或SQL中执行此操作。 Juergen的答案很好。

如果您正在使用,或者在某些时候决定在C#中使用LINQ,则在获取一行时会有一个FirstOrDefault()选项,如下所示:

return db.NameTable.Where(q => q.name == "John Smith").FirstOrDefault();

答案 3 :(得分:-3)

在你的sql语句中使用Group By [引用已删除'导致恶误的业力'或不同[引用已删除'导致恶误的业力]