所以,我有一个名为“lines”的表,其中有一个名为“WKT”的字段,其中包含相应的地理位置。
我构建了一个查询,它给出了相交的行的名称,如下所示:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def authentication_callback
auth = request.env['omniauth.auth']
render json: auth.as_json
end
end
它运作良好。有问题的情况是这个@DF线是“通过相同的路径返回”。在这种情况下,我想知道相交的重复行的名称。
这可能吗?
答案 0 :(得分:0)
不确定。假设你有一个计数表(即一个数字为1到一些大数字的表):
DECLARE @DF GEOGRAPHY
Set @DF=GEOGRAPHY::STLineFromText('LINESTRING(-9.564498 52.237100,-9.564906 52.243924,-9.565699 52.245563,-9.568173 52.251014,-9.567142 52.257567,-9.564291 52.262366,-9.563453 52.262972,-9.563447 52.262980,-9.563447 52.262980,-9.563447 52.262980)', 4326)
WITH cte AS (
SELECT n, @DF.STCurveN(n) AS curve
FROM dbo.Numbers
WHERE n <= @DF.STNumCurves()
)
select name, @DF.STIntersects(WKT) AS inters
from lines AS l
JOIN cte AS c
ON l.WKT.STIntersects(c.curve) = 1
我确信你可以在不使用CTE的情况下离开,但这才是我脑子里最有意义的。