繁体   English   中英

从基于不同列的表中进行选择

[英]selecting from a table based on a distinct column

希望这是有道理的。 我有一个表中有一堆记录。 每条记录都有一个uniqueID和一个名为pro的localID。 UniqueID永远不会重复,但可以有多个具有相同localID的记录。 我正在尝试构建一个查询,即使可能有15条具有相同localID的记录,也只显示其中的一条。 任何人,没关系。 我怎么把它关掉? 我试过了:

SELECT DISTINCT id, pro FROM ProLookup WHERE pro LIKE '%" & replace(q,"'","''") & "%'"

但那没用。 “q”是搜索pro(localID)的最终用户的查询。 我不是sql的专家,所以我确定我做错了什么。 非常感谢任何和所有的帮助!

如果您可以获得最大的ID,那么这将有效。

SELECT 
    MAX(id) AS id, 
    pro 
FROM ProLookup 
WHERE pro LIKE '%" & replace(q,"'","''") & "%'"
GROUP BY pro

也许SELECT TOP 1 id, pro FROM ProLookup WHERE pro LIKE '%" & replace(q,"'","''") & "%'"

您的查询究竟出了什么问题? 即给出错误或不正确的数据。

额外的“是否必要?SQL Server不特别喜欢双引号,所以如果将它传递给查询,您可能需要根据您的环境将其删除。

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. 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM