關閉
標題:mssql geometry 語法
內容:
SELECT
TOP 1
[SCNO],
[SCNOEXT],
CAST([GEOM97].MakeValid().STEnvelope().STPointN(1).STX AS INT) AS [LEFT],
CAST([GEOM97].MakeValid().STEnvelope().STPointN(1).STY AS INT) AS [BOTTOM],
CAST([GEOM97].MakeValid().STEnvelope().STPointN(3).STX AS INT) AS [RIGHT],
CAST([GEOM97].MakeValid().STEnvelope().STPointN(3).STY AS INT) AS [TOP],
CAST([GEOM97].MakeValid().STCentroid().STX AS INT) AS [X],
CAST([GEOM97].MakeValid().STCentroid().STY AS INT) AS [Y],
sdo2geojson(b.geom97,0) as geom97 -> dbo.geomToGeoJSON([a].[GEOM97]) AS [GEOM97]
FROM DATLAND
oracle:
and MDSYS.SDO_RELATE(a.GEOM97, MDSYS.SDO_GEOMETRY(@XY), 'MASK=CONTAINS QUERYTYPE=WINDOW') = 'TRUE'
mssql:
and a.GEOM97.MakeValid().STIntersects( geometry::STGeomFromText(@XY,3826)) = 1
oracle:
to_char( @date, 'YYYY')
mssql:
YEAR(@date)
oracle:
to_char( @date , 'YYYY/mm/dd')
mssql:
CONVERT (char,@endDate, 111)
oracle:
to_char( @date , 'YYYY/mm/dd hh24:MM:ss')
mssql:
CONVERT (char,@endDate, 120)
oracle:
DECODE(MAP_TYPE, '18', '1', '13', '2', '04', '3', '05', '4', '06', '5', '07', '5', '08', '5') LAYER_ID
mssql:
CASE(MAP_TYPE) WHEN '18' THEN '1'
WHEN '13' THEN '2'
WHEN '04' THEN '3'
WHEN '05' THEN '4'
WHEN '06' THEN '5'
WHEN '07' THEN '5'
WHEN '08' THEN '5'
WHEN '21' THEN '21' END [LAYER_ID]
oracle:
sql.Append(String.Format(" MDSYS.SDO_RELATE(GEOM, MDSYS.SDO_GEOMETRY('POINT({0} {1})'), 'mask=CONTAINS querytype=window') = 'TRUE' ", _ponitX, _pointY));
mssql:
sql.Append(String.Format(" GEOM.MakeValid().STIntersects( geometry::STGeomFromText('POINT({0} {1})',3826)) = 1 ",_pointX,_pointY));
oracle :
instr(@DATA_0, use_limit_no) > 0
mssql :
CHARINDEX( use_limit_no, @DATA_0) > 0 //要反過來
MSSQL WKT -> Geom :
update COUNTY SET GEO97=geometry::STGeomFromText(GEO97_WKT,3826)
ORACLE GEOMETRY -> WKT:
update TOWN SET GEO97_WKT=SDO_UTIL.TO_WKTGEOMETRY(GEO97)