暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的函数和运算符 - 转换函数和运算符(4)

数据库杂货铺 2021-07-13
364
转换到 Polygon 的情况
 
当转换结果类型为 Polygon 时,适用以下情况:
 
● 如果要转换的表达式是 LineString 类型的结构良好的几何图形,且是一个环(即起点和终点相同),则函数结果是 Polygon,其外环由 LineString 的点按相同的顺序组成。如果表达式不是一个环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果环的顺序不正确(外环必须是逆时针),就会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。
 
● 如果要转换的表达式是类型为结构良好的 Polygon 几何图形,则函数的结果是该 Polygon
 
● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,其中所有元素都是环,则函数结果是一个 Polygon,其中第一个 LineString 作为外环,任何额外的 LineString 值作为内环。如果表达式的任何元素不是环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果任何环的顺序不正确(外环必须是逆时针,内环必须是顺时针),就会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。
 
● 如果要转换的表达式是包含单个 Polygon 的结构良好的 MultiPolygon 几何图形,则函数结果为该 Polygon。如果表达式包含多个 Polygon,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
● 如果要转换的表达式是只包含一个 Polygon 的类型为 GeometryCollection 的结构良好的几何图形,则函数的结果是该 Polygon。如果表达式为空、包含多个 Polygon,或包含其他几何类型,将发生 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
● 如果要转换的表达式是 LineStringPolygonMultiLineStringMultiPolygon GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
转换到 MultiPoint 的情况
 
当转换结果类型为 MultiPoint 时,适用以下情况:
 
● 如果要转换的表达式是结构良好的 Point 类型的几何图形,则函数结果是一个包含该 Point 作为其唯一元素的 MultiPoint
 
● 如果要转换的表达式是结构良好的 LineString 类型的几何图形,则函数结果是一个 MultiPoint,其中以相同顺序包含 LineString 中的点。
 
● 如果要转换的表达式是结构良好的 MultiPoint 类型的几何图形,则函数的结果是该 MultiPoint
 
● 如果要进行转换的表达式是只包含点的类型为 GeometryCollection 的结构良好的几何图形,则函数结果是包含这些点的 MultiPoint。如果 GeometryCollection 为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
● 如果要转换的表达式是 PointLineStringMultiPoint GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
转换为 MultiLineString 的情况
 
当转换结果类型为 MultiLineString 时,适用以下情况:
 
● 如果要转换的表达式是 LineString 类型的结构良好的几何图形,则函数的结果是包含该 LineString 作为其唯一元素的 MultiLineString
 
● 如果要进行转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是一个 MultiLineString,其中包含 Polygon 的外环作为其第一个元素,任何内环作为其附加元素,以在表达式中出现的顺序进行添加。
 
● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,则函数的结果是 MultiLineString
 
● 如果要进行转换的表达式是一个结构良好的类型为 MultiPolygon 的几何图形,只包含没有内环的多边形,则函数结果是一个 MultiLineString,其中包含多边形环,其顺序是多边形环在表达式中出现的顺序。如果表达式包含任何带有内环的多边形,则会出现 ER_WRONG_PARAMETERS_TO_STORED_FCT 错误。
 
● 如果要转换的表达式是只包含 LineString 的结构良好的 GeometryCollection 类型的几何图形,则函数结果是包含这些 LineString MultiLineString。如果表达式为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
● 如果要转换的表达式是 LineStringPolygonMultiLineStringMultiPolygon GeometryCollection 类型之外的结构良好的几何图形,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
转换到 MultiPolygon 的情况
 
当转换结果类型为 MultiPolygon 时,适用以下情况:
 
● 如果要转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是包含 Polygon 作为其唯一元素的 MultiPolygon
 
● 如果要转换的表达式是结构良好的 MultiLineString 类型的几何图形,其中所有元素都是环,则函数结果是一个 MultiPolygon,它包含一个 Polygon,其中表达式的每个元素只有一个外环。如果任何元素不是一个环,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。如果任何环没有正确的顺序(外部环必须是逆时针),会出现 ER_INVALID_CAST_POLYGON_RING_DIRECTION 错误。
 
● 如果要转换的表达式是结构良好的 MultiPolygon 类型的几何图形,则函数结果为该 MultiPolygon
 
● 如果要转换的表达式是只包含多边形的结构良好的类型为 GeometryCollection 的几何图形,则函数结果是包含这些多边形的 MultiPolygon。如果表达式为空或包含其他几何类型,就会出现 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
● 如果要转换的表达式是除 PolygonMultiLineStringMultiPolygon GeometryCollection 以外的结构良好的几何类型,则会发生 ER_INVALID_CAST_TO_GEOMETRY 错误。
 
对于转换为 GeometryCollection 类型的情况
 
当转换结果类型为 GeometryCollection 时,适用以下情况:
 
● GeometryCollection GeomCollection 是同一结果类型的同义词。
 
● 如果要进行转换的表达式是一个结构良好的 Point 类型的几何图形,则函数结果是一个包含该 Point 作为其唯一元素的 GeometryCollection
 
● 如果要转换的表达式是结构良好的 LineString 类型的几何图形,则函数结果是一个包含该 LineString 作为其唯一元素的 GeometryCollection
 
● 如果要进行转换的表达式是结构良好的 Polygon 类型的几何图形,则函数结果是一个包含该 Polygon 作为其唯一元素的 GeometryCollection
 
● 如果要进行转换的表达式是结构良好的 MultiPoint 类型的几何图形,则函数结果是一个 GeometryCollection,其中包含的点按它们在表达式中出现的顺序排列。
 
● 如果要进行转换的表达式是结构良好的 MultiLineString 类型的几何图形,则函数结果是一个 GeometryCollection,其中包含 LineString,其顺序与它们在表达式中出现的顺序相同。
 
● 如果要转换的表达式是结构良好的 MultiPolygon 类型的几何图形,则函数结果是一个 GeometryCollectionMultiPolygon 的元素以它们在表达式中出现的顺序包含其中。
 
● 如果要转换的表达式是结构良好的 GeometryCollection 类型的几何图形,则函数的结果是该 GeometryCollection
 
 
 
 
官方网址:
https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html
文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论