我希望能够在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
我怎样才能从表中返回一条记录?任何帮助将不胜感激。
答案 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 [引用已删除'导致恶误的业力'或不同[引用已删除'导致恶误的业力]