【发布时间】:2014-11-06 14:48:52
【问题描述】:
我在 ArcGIS 中将此声明用于个人地理数据库。 它选择 [MyColumn1] 中的前三个记录,但如果 [MyColumn2] 等于内联变量,则不选择。
[MyColumn1] in(SELECT TOP 3 ( [MyColumn1] )
FROM MyTable
WHERE [MyColumn2] <> %Variable%
ORDER BY [MyColumn1] DESC)
但我还需要添加一个 DISTINCT 函数,因为有时 [MyColumn1] 中存在重复值,因此选择了 4 条记录。
如何在此表达式中包含 DISTINCT 以便 ArcCrash 和个人地理数据库可以处理它?关于这个主题有很多,但没有特定于工作 Arc 或至少访问。
这行不通
[MyColumn1] in(SELECT TOP 3 ( [MyColumn1] )
FROM MyTable
WHERE [MyColumn2] <> %Variable%
ORDER BY [MyColumn1] DESC
DISTINCT [MyColumn1] )
也没有
[MyColumn1] in(SELECT TOP 3 ( [MyColumn1] )
FROM MyTable
WHERE [MyColumn2] <> %Variable%
ORDER BY [MyColumn1] DESC
GROUP BY [MyColumn1])
【问题讨论】:
-
我对 arcgis 查询并不精通,但在大多数查询语言中,select 中的不同之处在于。所以试试:SELECT DISTINCT TOP 3 [MyColumn1]
-
如果 [MyColumn1] 中有重复,这仍然会选择 4 条记录。查询不会出错。
标签: sql syntax distinct arcgis