-6

我希望能够在 C# Visual Studio 2012 中的 WinForms 应用程序中编写一个不会显示匹配记录的查询。假设我在 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

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,则在获取一行时有一个 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 回答