Не мисля, че можете да направите това в изглед, но можете да създадете дефинирана от потребителя функция с таблична стойност (функция, която връща таблица), за да получите това, което искате.
Този пример използва таблица, дефинирана като
CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)
който съхранява различни типове геометрия (в примера, който свързах по-долу, използвах ТОЧКА, МНОГОТОЧКИ, ЛИНИЯ и МНОГОГОЛ).
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;
Вижте този примерен SQL Fiddle за пълен работещ пример.