[英]The type “geography” is not comparable. It cannot be used in the GROUP BY clause
我有這樣的查詢:
SELECT WorkId,
RegisterDate , Location
FROM (
SELECT dbo.[Work].WorkId ,
dbo.[Work].RegisterDate , dbo.Look.Location
FROM dbo.Municipality INNER JOIN
dbo.[Work] ON dbo.Municipality .Municipality Id = dbo.[Work].MunicipalityWorkId INNER JOIN
dbo.Look ON dbo.[Work].LookWorkId = dbo.Look.LookId
WHERE (dbo.Look.Location IS NOT NULL) AND Type= 1
) E
GROUP BY WorkId ,RegisterDate , Location
我得到這個錯誤:
類型“地理位置”不可比較。 不能在GROUP BY子句中使用它。
我需要將位置添加到分組依據,因為我需要在數據庫中顯示位置。 對於這種情況有什么解決方案? 謝謝。
這是一種方法。
使用Stastext
將Location
轉換為文本,並使用Group by
。 然后使用STGeomFromText
將其轉換回Select
geo
SELECT WorkId,
RegisterDate,
geography::STGeomFromText(Location.STAsText(), 4326)
FROM (SELECT dbo.[Work].WorkId,
dbo.[Work].RegisterDate,
dbo.Look.Location
FROM dbo.Municipality
INNER JOIN dbo.[Work]
ON dbo.Municipality.MunicipalityId = dbo.[Work].MunicipalityWorkId
INNER JOIN dbo.Look
ON dbo.[Work].LookWorkId = dbo.Look.LookId
WHERE ( dbo.Look.Location IS NOT NULL )
AND Type = 1) E
GROUP BY WorkId,
RegisterDate,
Location.STAsText()
從這個答案引用
注意:地理功能區分大小寫 ,應按原樣使用
STGeomFromText
STAsText
您未使用求和或計數之類的聚合函數,因此可以避免分組和排序
SELECT
WorkId
, RegisterDate
, Location
FROM (
SELECT
dbo.[Work].WorkId
, dbo.[Work].RegisterDate
, dbo.Look.Location
FROM dbo.Municipality
INNER JOIN dbo.[Work] ON dbo.Municipality.Municipality Id = dbo.[Work].MunicipalityWorkId
INNER JOIN dbo.Look ON dbo.[Work].LookWorkId = dbo.Look.LookId
WHERE (dbo.Look.Location IS NOT NULL) AND Type= 1
ORDER BY WorkId ,RegisterDate , Location
) E
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.