Nemyslím si, že to můžete udělat v pohledu, ale můžete vytvořit uživatelsky definovanou funkci s tabulkovou hodnotou (funkci, která vrací tabulku), abyste získali to, co chcete.
Tento příklad používá tabulku definovanou jako
CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)
který ukládá různé typy geometrie (v příkladu, který jsem propojil níže, jsem použil POINT, MULTIPOINT, LINESTRING a POLYGON).
CREATE FUNCTION dbo.GetVertices()
RETURNS @ret TABLE (GeomKey INT, X INT, Y INT, PointNo INT)
AS
BEGIN
DECLARE @max INT
SET @max = (SELECT MAX(vector.STNumPoints()) FROM GeoTable)
;WITH Sequence(Number) AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number + 1
FROM Sequence
WHERE Number < @max
)
INSERT INTO @ret
SELECT
gt.GeomKey
,gt.vector.STPointN(nums.number).STX AS X
,gt.vector.STPointN(nums.number).STY AS Y
,nums.number AS PointNo
FROM GeoTable gt, Sequence nums
WHERE nums.number <= gt.vector.STNumPoints()
RETURN
END;
Podívejte se na tento ukázkový SQL Fiddle pro kompletní funkční příklad.