希望这是有道理的。我有一个表中有一堆记录。每条记录都有一个uniqueID和一个名为pro的localID。 UniqueID永远不会重复,但可以有多个具有相同localID的记录。我正在尝试构建一个查询,即使可能有15条具有相同localID的记录,也只显示其中的一条。任何人,没关系。我怎么把它关掉?我试过了:
SELECT DISTINCT id, pro FROM ProLookup WHERE pro LIKE '%" & replace(q,"'","''") & "%'"
但这不起作用。 “q”是搜索pro(localID)的最终用户的查询。我不是sql的专家,所以我确定我做错了什么。非常感谢任何和所有的帮助!
答案 0 :(得分:2)
如果您可以获得最大的ID,那么这将有效。
SELECT
MAX(id) AS id,
pro
FROM ProLookup
WHERE pro LIKE '%" & replace(q,"'","''") & "%'"
GROUP BY pro
答案 1 :(得分:1)
也许SELECT TOP 1 id, pro FROM ProLookup WHERE pro LIKE '%" & replace(q,"'","''") & "%'"
您的查询有什么问题?即提供错误或不正确的数据。
是额外的"到底有必要吗? SQL Server并不特别喜欢双引号,因此如果将其传递给查询,则可能需要根据您的环境将其删除。
答案 2 :(得分:0)
SELECT id, pro
FROM
(
SELECT id, pro , ROW_NUMBER() OVER (PARTITION BY pro ORDER BY id) AS RN
FROM ProLookup
WHERE pro LIKE YourCondition --<-- Only if you want certain Pro ids, if you
)Q -- want all Distinct Pro Ids, take where clause
WHERE RN = 1 -- Out.