i have give three different type of approach tak which one you want
DECLARE @GEOLINE TABLE
(
GEOLINE_ID INT IDENTITY(1,1) NOT NULL
,GEOLINE_LINE GEOMETRY NOT NULL
);
INSERT INTO @GEOLINE (GEOLINE_LINE)
VALUES
(geometry::STGeomFromText('LINESTRING(0 1, 6 0)', 0))
,(geometry::STGeomFromText('LINESTRING(0 2, 5 0)', 0))
,(geometry::STGeomFromText('LINESTRING(0 3, 4 0)', 0))
,(geometry::STGeomFromText('LINESTRING(0 4, 3 0)', 0))
,(geometry::STGeomFromText('LINESTRING(0 5, 2 0)', 0))
,(geometry::STGeomFromText('LINESTRING(0 6, 1 0)', 0))
,(geometry::STGeomFromText('LINESTRING(4 4, 3 6)', 0));
/*******************************************
* for just select the interSEcted lines
*******************************************/
SELECT g.GEOLINE_LINE FROM @GEOLINE g
WHERE EXISTS
(SELECT 1 FROM @GEOLINE g1 WHERE g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1)
/*******************************************
* for just select the aLL lines
*******************************************/
SELECT g.GEOLINE_LINE ,g.GEOLINE_LINE.STIntersection(g1.GEOLINE_LINE).STBuffer(0.05) AS Intersctions FROM @GEOLINE g
INNER JOIN @GEOLINE g1 ON g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1 AND g.GEOLINE_LINE.ToString()<>g1.GEOLINE_LINE.ToString()
/*******************************************
* Overlayer
*******************************************/
SELECT x.allgeo FROM @GEOLINE g
LEFT JOIN @GEOLINE g1 ON g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1 AND g.GEOLINE_LINE.ToString()<>g1.GEOLINE_LINE.ToString()
CROSS APPLY
(
VALUES
(g.GEOLINE_LINE) ,(g.GEOLINE_LINE.STIntersection(g1.GEOLINE_LINE).STBuffer(0.2))
)AS x (AllGeo)
Every rule in a world of bits and bytes, can be bend or eventually be broken
MyBlog About Common dialog control
A Visualizer for viewing SqlCommand object script [/url]