sql-server - 如何为给定的 CityTown 获取每个 StreetName 的 1 个实例
问题描述
我有数千条记录iAddress表。示例图像如下所示。如果看不到图像,我还在下一行包含了表格的文本列表示。
身份证 | 无 | 取消类型 | 公民号 | CivNoSuffix | 街道名称 | 标准目录 | 城市小镇 | 省 | 电脑 | 城市 ID
我需要一个查询,该查询将只返回给定县中给定 CityTown 的每个 StreetName 的一个实例,然后将其绑定到下拉列表。
我目前正在使用以下查询,我认为它正在工作,但最近注意到在大型返回集中,列表中缺少一些 StreetName 实例。关于如何改进以使查询返回 100% 准确结果的任何想法?
SELECT * FROM iAddress WHERE CtyId=@CI AND CityTown=@CT AND ID in (Select max(ID) FROM iAddress group by StreetName) Order By StreetName
解决方案
如果您只需要 StreetName 绑定到下拉菜单,那么也许
SELECT StreetName
FROM iAddress
WHERE CtyId = @CI AND CityTown = @CT
GROUP BY StreetName
ORDER BY StreetName
否则,您现在使用的 ID 可能来自错误的城市。MAX(ID) 需要仅用于您想要的城镇。
SELECT *
FROM iAddress
WHERE ID in (
Select max(ID)
FROM iAddress
WHERE CtyId = @CI AND CityTown = @CT
group by StreetName)
Order By StreetName
推荐阅读
- graphics - 用粗细计算线的边界框
- marklogic - 在 MarkLogic 中删除不同事务中的三元组
- tensorflow - 从 TF 中的矩阵(实际上是张量)中选择列并散射回零?
- javascript - Javascript this 上下文绑定
- python - 如何在Python中使用将双反斜杠替换为单个字节字符串
- android - 处理点击自定义通知按钮并显示 Facebook ShareDialog
- python - 使用轮廓时缺少填充轮廓
- python - buildout 找不到 Plone 的 pip 包
- laravel - 更新 5.1 到 5.2 时 Laravel Method 过滤器不存在
- javascript - Angular 6:正确实现 ControlValueAccessor