30个最常用的空间SQL用例

2023-05-16

在开始使用空间 SQL 时,至少对我而言,最大的挑战之一是拥有一个快速简便的参考,以将你当前的 GIS 工作流转换为 SQL。 有许多令人惊叹的资源可以扩展这方面的知识,但本指南旨在成为一本真正简单的食谱,以开始将你当前的工作流转换为空间 SQL。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

有几点需要注意:

  • 我将为 PostGIS 和通用数据仓库编写 SQL 代码
  • 并非每个数据仓库都支持投影——例如,BigQuery 和 Snowflake 仅支持 WGS 84 SRID 4326
  • 本指南于 2022 年 2 月发布,并将根据需要进行更新

1、几何图形

使用空间SQL可以创建2D/3D几何图形,或者查询几何体的属性。

1.1从纬度/经度对创建点几何

此查询将从包含纬度和经度值的数字列创建几何体。

# PostGIS

SELECT
ST_SetSRID(ST_MakePoint(lng, lat), 4326) as point_geom
FROM table

# BigQuery

SELECT
ST_GEOGPOINT(lng, lat) as point_geom
FROM table

# Snowflake and Redshift

SELECT
ST_MakePoint(lng, lat) as point_geom
FROM table

1.2 从 Well Known Text 创建几何图形

与上面类似,这将从 WKT 字符串创建一个几何图形:

# PostGIS, Redshift

SELECT
ST_GeomFromText('POINT(-71.064544 42.28787)', 4326) as geom
FROM table

# BigQuery

SELECT
ST_GEOGFROMTEXT('POINT(-71.064544 42.28787)') as geom
FROM table

# Snowflake

SELECT
ST_GEOGFROMWKT('POINT(-71.064544 42.28787)') as geom
FROM table

1.3 修改数据的投影

可以使用一个简单的函数将你的数据重新投影到一个使用此查询的新投影:

# PostGIS and Redshift

SELECT
ST_Transform(geom, 4326) as geom
FROM table

1.4 获取几何体经纬度

使用点几何,可以将纬度和经度提取为数值:

# PostGIS, BigQuery, Snowflake, and Redshift

SELECT
ST_X(geom) as longitude,
ST_Y(geom) as latitude
FROM table

2、测量

使用空间SQL可以对几何体进行测量。

2.1 计算多边形的面积

求多边形的面积(以平方米为单位)

# PostGIS, BigQuery, Snowflake, and Redshift

SELECT
ST_Area(geom) as area
FROM table

2.2 计算多边形的周长

与上面类似,但多边形的周长以米为单位

# PostGIS, BigQuery, Snowflake, and Redshift

SELECT
ST_Perimeter(geom) as area
FROM table

2.3 计算一条线的长度

计算一条线的长度(以米为单位)

# PostGIS, BigQuery, Snowflake, and Redshift

SELECT
ST_Length(geom) as length
FROM table

2.4 计算几何体之间的距离

返回两个几何之间的距离(以米为单位)。 每个不同的函数在使用球体或曲面地球计算时都有不同的签名,因此请务必在这种情况下检查文档。

# PostGIS and BigQuery

SELECT
ST_Distance(geom_1, geom_2) as distance
FROM table

2.5 计算两个几何体之间的最短距离

给定两个几何图形,找到几何图形 2 上最接近几何图形 1 的点。该函数将返回一个新点,表示第二个几何图形上与第一个几何图形的最近点。

# PostGIS and BigQuery

SELECT
ST_ClosestPoint(geom_1, geom_2) as closest_point
FROM table

3、几何变换

使用空间SQL可以对几何体进行变换操作。

3.1 在几何体周围创建缓冲区

在几何体周围创建一个缓冲区,它返回一个新的几何体。 下面函数中的数字是缓冲区的距离(以米为单位)。

# PostGIS, BigQuery, and Redshift

SELECT
ST_Buffer(geom, 100) as closest_point
FROM table

3.2 获取多边形或线的质心

如果你想找到一个几何体的质心,你可以使用这个查询来返回一个几何体的质心点:

# PostGIS, BigQuery, Snowflake, and Redshift

SELECT
ST_Centroid(geom) as centroid
FROM table

3.3 创建凹包或凸包

可以从一个几何体或一组几何体创建凹包或凸包,这将返回一个新的几何体:

# PostGIS, BigQuery, and Redshift

SELECT
ST_ConvexHull(geom) as convex_hull
FROM table

SELECT
ST_ConcaveHull(geom) as convex_hull
FROM table

还可以通过对几何图形进行分组来做到这一点:

# ST_Collect will collect the matching geometries together into a GeometryCollection

SELECT 
ST_ConvexHull(ST_Collect(geom)) as convex_hull,
category
FROM table
GROUP BY category

3.4 合并几何体

如果你想合并你的几何图形,使用 ST_Union 返回一个新的几何图形:

# PostGIS and BigQuery

SELECT
ST_Union(geom) as geom,
category
FROM table
GROUP BY category

3.5 创建 Voronoi 多边形

围绕你的几何创建 Voronoi 多边形,返回新的几何体:

# PostGIS

SELECT
ST_VoronoiPolygons(geom) as voronoi_polygons
FROM table

3.6 查找交叉点的结果多边形

在 GIS 中通常称为剪切(Clip),使用此函数返回两个几何图形的交叉区域:

# PostGIS, BigQuery, Redshift, and Snowflake

SELECT
ST_Intersection(geom_1, geom_2) as intersection
FROM table

或者,如果你想查找几何关系船的剩余部分,可以使用 ST_Difference:

# PostGIS, BigQuery, Redshift, and Snowflake

SELECT
ST_Difference(geom_1, geom_2) as intersection
FROM table

4、空间关系

使用空间SQL可以查询几何体之间的空间关系。

4.1 查找一定距离内的几何图形

在另一个几何体的一定距离内查找几何体,常用于聚合查询或 WHERE 子句:

# PostGIS, BigQuery, Redshift, and Snowflake

SELECT
*
FROM table
WHERE ST_DWithin(
	geom_1, 
	ST_GeomFromText('POINT(-73.9895258 40.7413529)',4326),
	1000)

4.2 评估空间关系

查看两个几何图形是否重叠、接触、交叉、相交、包含等(或评估空间关系)。这是一个更复杂的函数,因为有几个不同的函数来评估空间关系,每个函数之间都有细微差别。 确保检查你正在使用的数据库或数据仓库的文档,因为它们可能会有所不同,或者可能具有不同的容差。

以下是 PostGIS 空间关系的核心功能,可以在此处找到更多详细信息。 此外,每个函数都会根据空间关系的结果返回一个布尔值 (true/false),我们可以使用几种方法(更多内容见下文)。

  • ST_Equals——如果两个几何完全相等则返回真
  • ST_Intersects——如果两个几何图形共享任何公共空间,则返回 true
  • ST_Disjoint – 如果两个几何图形不共享任何空间,则返回 true,或者与ST_intersects 相反
  • ST_Crosses – 如果几何图形有一些但不是全部的共同内部点,则返回 true。更详细地说,“如果交集产生的几何尺寸比两个源几何的最大尺寸小一,并且交集在两个源几何的内部,则返回 true”。如果几何相交但相交结果少一维(或者它一次穿过相交的几何),它将返回 true。 适用于多点/多边形、多点/线串、线串/线串、线串/多边形和线串/多多边形比较。
  • ST_Overlaps – 如果两个几何图形在空间上重叠或相交但一个不完全包含另一个,则返回 true
  • ST_Touches——如果一个几何体接触另一个几何体,但不与内部相交,则返回真
  • ST_Within – 如果第一个几何完全在第二个几何内,则返回 true
  • ST_Contains – 如果第二个几何完全包含在第一个几何中(与 ST_Within 相反),则返回 true
# PostGIS, BigQuery, Redshift, and Snowflake

SELECT
ST_Intersects(geom_1, geom_2) as intersects
FROM table

5、其他功能

空间SQL可以完成的其他功能,包括简化等。

5.1简化几何体

如果你想简化一个几何图形,你可以使用这些函数来简化和返回新的几何图形。 请注意,有些功能不会保留拓扑(或接触线/关系),但下面的功能会保留。 下面的数字是以米为单位的变化容差。

# PostGIS

SELECT
ST_SimplifyPreserveTopology(geom, 1) as geom
FROM table

# PostGIS, BigQuery, Redshift, and Snowflake

SELECT
ST_Simplify(geom, 1) as geom
FROM table

5.2 创建随机点

在多边形内生成 N 个随机点。 你可以指定编号或使用表格中的数据(如下图所示)。 请记住,每个函数都会返回不同的东西(PostGIS 返回一个多点,BigQuery 返回一个数组)所以如果你想将每个点提取到它自己的一行中,你可能需要使用其他函数:

# PostGIS

SELECT
ST_GeneratePoints(geom, number_column) as geom
FROM table

# BigQuery

WITH point_lists AS (
  SELECT `carto-un`.carto.ST_GENERATEPOINTS(geom, number_column) AS points
  FROM table
)
SELECT points FROM point_lists CROSS JOIN point_lists.points

5.3 点的聚类

通过创建几何空间集群来分析您的数据。 有两种方法,DBSCAN 和 KMeans,可用于执行此操作。 每个函数将为每行所属的簇返回一个数字,它也是一个窗口函数,因此它在这里也使用 OVER() 操作:

# PostGIS and BigQuery

SELECT
geom,
ST_ClusterDBSCAN(geom, desired_distance, min_geoms_per_cluster) OVER() as cluster_id
FROM table
# PostGIS and BigQuery

SELECT
geom,
ST_ClusterKMeans(geom, number_of_clusters) OVER() as cluster_id
FROM table

6、如何使用空间函数

有许多方法可以使用空间函数,根据你的需要,可以通过几种方式利用这些函数。 这些只是一些示例,但是相当常见的用例。

6.1 单几何体

首先,可以针对单个几何图形查询表中的其他行:

SELECT
ST_Distance(
	geom,
	ST_GeomFromText('POINT(-73.9895258 40.7413529)')) as distance
FROM table

6.2 同数据表

你还可以与同一个表中的值进行比较——此示例使用子查询来说明它。

SELECT
ST_Distance(
	geom,
	(SELECT geom FROM table WHERE id = 1)) as distance
FROM table
6.3 WHERE 子句
也可以在 WHERE 子句中使用空间函数来限制结果:

SELECT
*
FROM table
WHERE ST_Distance(
	geom,
	(SELECT geom FROM table WHERE id = 1)) < 100

6.4 连接

连接(Join)还用于使用空间函数作为条件连接两个表,通常用于聚合和空间连接:

SELECT
a.id,
COUNT(b.id) as count
FROM table a
JOIN other_table b
ON ST_Contains(a.geom, b.geom)
GROUP BY a.id

6.5 交叉连接

交叉连接有多种使用方式,但本质上是根据另一个表的值评估一个表的每个值。 它们还可以用于执行一些更复杂的“批量循环连接”,我们将在下面详细介绍。

SELECT
ST_Distance(a.geom, b.geom) as distance
a.id as id_one,
b.id as id_two
FROM table a, other_table b

6.6 子查询

子查询,如上所示,可以让你从其他表中检索特定值或聚合:

SELECT
a.id,
(SELECT COUNT(id) FROM table WHERE ST_DWithin(a.geom, geom, 400)) as within_400m
FROM other_table a

6.7 聚合

我们上面的连接示例说明了如何使用聚合,但还有许多其他例子。 查看这篇文章了解更多细节和用例。

7、其他复杂或特定的功能

使用空间SQL还可以完成一些复杂的功能。

7.1 H3 Cells

CARTO Spatial Extension 提供创建和管理 H3 单元和其他功能的功能。 此查询将在特定几何图形的边界内创建 H3 单元格(使用 BigQuery 表语法):

WITH
  mn AS (
  SELECT
    geom
  FROM
     project.dataset.table
  WHERE
    name = 'Minnesota')

SELECT
  h3,
  `carto-un`.carto.H3_BOUNDARY(h3) AS geom
FROM (
	SELECT `carto-un`.carto.H3_POLYFILL(geom, 5) AS cells
  FROM 
    mn),
UNNEST(cells) AS h3

7.2 创建地图瓦片

还可以在空间 SQL 中创建地图图块。 这个视频详细介绍了如何使用 PostGIS 和 pg_tileserv 中的一些函数来做到这一点。

还可以使用 CARTO Spatial Extension 在各种数据仓库中执行此操作,此处在 BigQuery 中进行了说明:

CALL `carto-un`.carto.CREATE_TILESET(
  R'''(
    SELECT geom, type
    FROM `carto-do-public-data.natural_earth.geography_glo_roads_410`
  )
  ''',
  R'''`cartobq.maps.natural_earth_roads`''',
  STRUCT(
    "Tileset name" AS name,
    "Tileset description" AS description,
    NULL AS legend,
    0 AS zoom_min,
    10 AS zoom_max,
    "geom" AS geom_column_name,
    NULL AS zoom_min_column,
    NULL AS zoom_max_column,
    1024 AS max_tile_size_kb,
    "RAND() DESC" AS tile_feature_order,
    true AS drop_duplicates,
    R'''
      "custom_metadata": {
        "version": "1.0.0",
        "layer": "layer1"
      }
    ''' AS extra_metadata
  )
);

7.3 使用道路或其他网络进行路由

PgRouting 在 PostGIS 中提供路由功能,可以使用一些简单的函数计算路由。 可以在这个教程中找到更多信息。

SELECT * FROM pgr_dijkstra(
    '
      SELECT gid AS id,
        source,
        target,
        length AS cost
      FROM ways
    ',
    1,
    2,
    directed := false);

可以使用 CARTO Analytics Toolbox 来完成示例。 创建网络后,可以计算最短路径:

CALL `carto-un`.carto.FIND_SHORTEST_PATH_FROM_NETWORK_TABLE(
  "mydataset.network_table",
  "mydataset.shortest_path_table",
  "ST_GEOGPOINT(-74.0, 40.0)",
  "ST_GEOGPOINT(-75.0, 41.0)"
);

8、示例codebook

这里列出一些空间SQL的示例codebook。

8.1 简单最近邻

一个很常见的问题,解决一个特定值的最近邻,增加 LIMIT 会增加更多的结果:

# PostGIS

SELECT id, (SELECT geom FROM another_table LIMIT 1) <-> geom AS distance
FROM table
ORDER BY distance
LIMIT 1
# BigQuery

SELECT
  a.id,
  ARRAY_AGG(b.geoid ORDER BY st_distance(a.geom,
      b.geom) ASC LIMIT 1)[SAFE_OFFSET(0)] as id,
  ARRAY_AGG(st_distance(a.geom,
      b.geom) ORDER BY st_distance(a.geom,
      b.geom) ASC LIMIT 1)[SAFE_OFFSET(0)] as dist

FROM
  project.dataset.table_1 a
CROSS JOIN project.dataset.table_2 b
GROUP BY a.id

8.2 计算多边形之间的重叠百分比

计算多边形与 ST_Intersection 和 ST_Area 的重叠百分比。 可以对表中每一行的一个多边形或 where 子句中的一个多边形执行此操作,以查找相交一定数量的重叠区域。

# PostGIS

WITH a AS (SELECT geom FROM table WHERE id = 1)

SELECT 
ST_Area(ST_Intersection(geom, (SELECT geom FROM a))/ST_Area(geom) AS overlap
FROM table
ORDER BY overlap
# PostGIS

SELECT
COUNT(a.column),
b.id,
b.geom
FROM table b
LEFT JOIN table_2 a 
ON ST_Intersects(a.geom, b.geom)
WHERE ST_Area(ST_Intersection(a.geom, b.geom)/ST_Area(geom) > .5

8.3 求两个不接触多边形上最近两点之间的距离

PostGIS:

# PostGIS

SELECT
  ST_Distance(ST_ClosestPoint(a.geom,
      b.geom),
    ST_ClosestPoint(b.geom,
      a.geom)) AS distance,
	ST_MakeLine(ST_ClosestPoint(a.geom,
      b.geom),
    ST_ClosestPoint(b.geom,
      a.geom)) AS geom,
  a.objectid
FROM
  table a
CROSS JOIN LATERAL (
  SELECT
    geom
  FROM
    table_2
  WHERE
    ST_Disjoint(a.geom,
      geom)
	AND a.objectid != objectid
  ORDER BY
    ST_Distance(geom,
      a.geom) ASC LIMIT 1) b

BigQuery:

# BigQuery

SELECT
  ST_MakeLine(ST_ClosestPoint(a.geom,
      b.geom),
    ST_ClosestPoint(b.geom,
      a.geom)) AS geom,
  ST_Distance(ST_ClosestPoint(a.geom,
      b.geom),
    ST_ClosestPoint(b.geom,
      a.geom)) AS geom,
  a.id
FROM
  table_one a
LEFT JOIN (
  SELECT
    one.geom,
    two.id,
    ROW_NUMBER() OVER (PARTITION BY two.id ORDER BY ST_Distance(one.geom, two.geom) ASC) AS rank
  FROM
    table_one one,
    table_two two
  WHERE
    ST_Disjoint(one.geom,
      two.geom)
  ORDER BY
    ST_Distance(one.geom,
      two.geom) ASC ) b
USING
  (id)
WHERE
  b.rank = 1

8.4 在几何体周围创建缓冲区并从缓冲区中裁剪出区域

获取一个几何图形,创建一个缓冲区,然后从缓冲区中裁剪出另一层的区域。

# PostGIS

SELECT 
ST_Difference(
   ST_Union(
       ST_Buffer(a.geom, 1609)
     ), 
  ST_Union(b.geom))
  as clipped_geom
FROM table a
LEFT JOIN table_2 b
ON ST_Intersects(a.geom, b.geom)

# BigQuery

SELECT 
ST_Difference(
   ST_Union_Agg(
       ST_Buffer(a.geom, 1609)
     ), 
  ST_Union(b.geom))
  as clipped_geom
FROM table a
LEFT JOIN table_2 b
ON ST_Intersects(a.geom, b.geom)

8.5 批量最近邻加入

通过查找从一个表到另一个表中所有行的最近邻居,将两个表连接在一起。 灵感来自 Paul Ramsey 的这篇文章。

# PostGIS

SELECT
  a.geom,
  b.name,
  ST_Distance(a.geom, b.geom) AS distance
FROM
  table a
CROSS JOIN LATERAL
  (SELECT name, geom
   FROM table_2 b
   ORDER BY
     a.geom <--> geom
   LIMIT 1) b
# BigQuery

SELECT
  a.id,
  ARRAY_AGG(b.geoid ORDER BY st_distance(a.geom,
      b.geom) ASC LIMIT 1)[SAFE_OFFSET(0)] as id,
  ARRAY_AGG(st_distance(a.geom,
      b.geom) ORDER BY st_distance(a.geom,
      b.geom) ASC LIMIT 1)[SAFE_OFFSET(0)] as dist

FROM
  table_one a
CROSS JOIN table_two b

GROUP BY a.id

8.6 计算相邻多边形中值的平均值

对于每个多边形,找到其相邻多边形的平均值(或其他聚合值)。

# BigQuery

WITH
  one AS (
  SELECT
    a.name,
    SUM(b.value) AS total
  FROM
    table a
  LEFT JOIN
    table_2 b
  ON
    ST_Touches(b.geom, a.geom)
  GROUP BY
    a.name)

SELECT
  one.*,
  b.geom
FROM
  one
JOIN
  table b
USING
  (name)
# PostGIS

SELECT
  a.geom,
  a.name,
  SUM(b.value) as total
FROM
  table a
CROSS JOIN LATERAL
  (SELECT value
   FROM table_two
   WHERE 
     ST_Intersects(geom, a.geom)
  ) AS b
GROUP BY a.name, a.geom

8.6 将点聚合到 H3 单元格中

# BigQuery

WITH
  data AS (
  SELECT
    `carto-un`.carto.H3_FROMGEOGPOINT(geog, 4) AS h3id,
    COUNT(*) AS agg_total
  FROM `cartobq.docs.starbucks_locations_usa`
  GROUP BY h3id
  )
SELECT
  h3id, 
  agg_total,
  `carto-un`.carto.H3_BOUNDARY(h3id) AS geom
FROM
  data

8.7 逐行排列最近的 N 个邻居

对于一个表中的每一行,创建一组新的 N 行,其中 N 个最近的邻居具有排名。 简而言之,评估表中的每一行都将根据你要查找的邻居数量返回 N 个新行。

# PostGIS

SELECT
	a.id, 
  t.geom,
  ST_Distance(t.geom, a.geom) as closest_dist
FROM a
CROSS JOIN LATERAL (
	SELECT *,
	ROW_NUMBER() OVER(ORDER BY a.geom <-> geom) AS rank
  FROM seattle_parks
  LIMIT 5
	) as t
# BigQuery

SELECT
  b.id,
  a.station_id,
  a.rank,
  a.name,
  a.dist
FROM
  table b
LEFT JOIN (
  SELECT
    b.station_id,
    b.name,
    ST_Distance(c.geom, b.geom) AS dist,
    b.id,
    ROW_NUMBER() OVER (PARTITION BY c.id ORDER BY ST_Distance(c.geom, b.geom) ASC) AS rank
  FROM
    table b,
    table_2 h ) a
USING
  (id)
WHERE
  rank < 4

原文链接:Top 31 Spatial SQL用例 — BimAnt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

30个最常用的空间SQL用例 的相关文章

  • “for”SQL Server 附近的语法不正确

    我想向其中已有数据的现有表添加一个新列 该列应该不为空 因此我想设置一个默认值 但是当我这样做时 它会抛出以下异常 for 附近的语法不正确 ALTER TABLE Semester ADD SIDNew uniqueidentifier
  • 从数据库中删除重复的行

    我需要从数据库中删除重复的行 我可以用简单的sql查询来完成吗 如果没有 请告诉我一些快速算法来做到这一点 Example id field one field two 1 0000000 11111111 2 2222222 333333
  • 数百个别名/同义词与数据库表的完全限定名称

    考虑到多个模式中的数百个数据库表 在创建存储过程和视图时 您是否建议使用别名 同义词或完全限定名称 给定一些 schema table 像这样 Orders OrderHeader Production LineThroughput Sal
  • 如何在 T-SQL 中将 CSV 转换为记录集?

    在我的存储过程中 我传递一个过滤器 使用 WHERE Column IN 子句 作为参数 参数值以 CSV 形式给出 将此 CSV 转换为记录集的最佳方法是什么 例子 SELECT FROM Employee WHERE Name IN J
  • 如果未找到值,则使用默认值填充行 PostgresQL

    我想返回过去 7 天的 user activity 但对于那些空的日子我想添加 0 作为值 假设我有这张桌子 actions id date 67 123 2019 07 7 90 123 2019 07 9 100 123 2019 07
  • TSQL 返回 NO 或 YES,而不是 TRUE 或 FALSE

    如果某些列返回 FALSE 如何显示不同的值 例如 COLUMN BASIC 返回 FALSE 但我需要向用户显示 YES 或 NO 情况为 FALSE 返回 NO 如果是 varchar 或 bit 则处理 NULL case when
  • MYSQL中收盘价的简单移动平均线计算和更新表

    我可以使用一些帮助 最好是虚拟指南 来更新下表 CREATE TABLE SYMBOL day date NOT NULL open decimal 8 3 DEFAULT NULL high decimal 8 3 DEFAULT NUL
  • 如何在MyBatis foreach中迭代HashMap?

    我正在尝试在 mybatis 中生成如下所示的 sql SELECT COL C FROM TBLE 1 WHERE COL A COL B in kp kar srt sach 而我的输入参数类型是HashMap 现在如何从映射器 xml
  • 为什么此 SQL 更新失败(“列名无效”)?

    我有一个 SQL Server CE 表 如下所示 我正在尝试像这样更新其唯一记录 update workTables set fileType INV 但我得到 Why UPDATE 请查看相关问题here https stackover
  • SQL SERVER 中的排序依据和大小写

    我需要在存储过程中按功能排序 一个值被发布到网络服务 并且基于该值我必须以某种方式对结果进行排序 即 当 ColName 按 ColName 发布订单时 当 ColName2 由 ColName2 发布订单时 我正在研究使用 Case 但出
  • 递归 SQL 给出 ORA-01790

    使用 Oracle 11g 第 2 版 以下查询给出 ORA 01790 表达式必须与相应表达式具有相同的数据类型 with intervals time interval AS select trunc systimestamp from
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • java.sql.Timestamp 到微秒精度的字符串

    我正在将时间戳列从数据库读取到 java sql Timestamp 对象中 然后我想将时间戳的值转换为 String 对象 但保持微秒精度 调用 toString 方法让我接近 但它似乎在微秒内丢失了尾随零 如果时间戳以非零数字结尾 则一
  • 如何将 MySQL 数据库更改为 UTC?

    我使用的是 Windows 7 对数据库方面的东西有点陌生 我尝试在 Google 上搜索如何将系统时区更改为 UTC 但文档有些高级 我不太确定如何更改此字段 在 my ini 文件的 mysqld 部分下 添加以下行 default t
  • 将两行中相似的列数据合并到一行中

    我的查询结果具有以下特征 LIDCode Total Domain Region VSE Version AB02 15 GLOBAL CANLA 0 6943 AB02 5925 CENTRE STREET SW 31 GLOBAL CA
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • SPARK SQL - 当时的情况

    我是 SPARK SQL 的新手 SPARK SQL 中是否有相当于 CASE WHEN CONDITION THEN 0 ELSE 1 END 的内容 select case when 1 1 then 1 else 0 end from
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询

随机推荐

  • 控制中的各种函数MATLAB仿真

    控制系统的MATLAB仿真 1 MATLAB简介 MATLAB是Mathworks公司开发的一种集数值计算 符号计算和图形可视化三大基本功能于一体的功能强大 操作简单的优秀工程计算应用软件 MATLAB不仅可以处理代数问题和数值分析问题 x
  • 使用VNC实现Windows7远程CentOS的桌面

    使用VNC实现Windows7远程CentOS的桌面 一 CentOS服务端配置 1 下载Putty远程登录软件 下载windows版本 输入CentOS计算机的ip xff0c 登录CentOS计算机的终端 xff08 下载Putty地址
  • iperf3使用方法(Windows与MacOS,iOS)

    Windows下载 https iperf fr iperf download php windows MacOS下载 brew install iperf3 iOS App Store搜索 iperf 61 61 61 61 61 在软路
  • 树莓派raspberry pi 安装远程工具teamviewer

    raspberry pi 安装远程工具teamviewer 1 下载Teamviewer wget http download teamviewer com download linux version 11x teamviewer hos
  • windows配置端口映射到其它电脑(转载)

    windows配置端口映射到其它电脑 转载 A 配置方法 假定需要通过192 168 1 8的14941端口连接192 168 1 118的1494端口 xff0c 则需要在192 168 1 8主机的命令行输入如下语句 netsh int
  • RFID ACCESS CONTROL门禁密码修改

    1 必须先进入编程方式 xff1a 按 xff3b xff3d xff0b xff3b 6位编程密码 如012345 xff0c 忘记编程密码参考第6步重置 xff0c 嘟嘟两声响 xff0c xff08 红灯闪烁 xff0c 绿灯长亮 出
  • 【论文笔记】SphereFace: Deep Hypersphere Embedding for Face Recognition

    参考文献 xff1a Liu W Wen Y Yu Z et al SphereFace Deep Hypersphere Embedding for Face Recognition J arXiv preprint arXiv 1704
  • vue3项目使用node连接数据库(前后端分离)

    学习关键语句 xff1a vue连接mysql数据库 vue项目连接后台数据库配置 vue通过node连接MySQL数据库 写在前面 为了快速学习nodejs制作后端并和数据库进行交互的方法 所以赶紧写一篇这样的文章出来 如果你对这篇文章中
  • 机器学习实战-64:线性判别分析降维算法(Linear Discriminant Analysis)

    机器学习实战 64 线性判别分析降维算法 深度学习原理与实践 开源图书 总目录 xff0c 建议收藏 xff0c 告别碎片阅读 xff01 机器学习分为监督学习 无监督学习和半监督学习 强化学习 无监督学习最常应用的场景是聚类 cluste
  • 计算机硬件基础与实践探知

    计算机硬件的五大单元 在介绍计算机硬件基础之前 xff0c 我们必须了解一下计算机硬件的五大单元 xff0c 注意这里说的是硬件的五大单元并不是计算机五大单元 输入设备 无论是计算机五大单元还是计算机硬件的五大单元 xff0c 这其中必须包
  • 去除Google Chrome新标签页中的8个缩略图

    在Google Chrome中 xff0c 新建空白页时 xff0c 会显示如下缩略图 xff0c 并且会看到最近的一些访问记录 xff1a 对于本人自己感觉不是很美观 xff0c 我喜欢更简洁的界面 xff0c 而且也看不全我喜爱的背景图
  • 面对百亿数据,Hbase为什么查询速度依然非常快?

    HBase适合存储PB级别的海量数据 xff08 百亿千亿量级条记录 xff09 xff0c 如果根据记录主键Rowkey来查询 xff0c 能在几十到百毫秒内返回数据 那么Hbase是如何做到的呢 xff1f 接下来 xff0c 介绍一下
  • Laravel视图blade模板使用集合

    var 打印内容 var or 39 default 39 打印内容并带一个默认值 var 打印转义内容 Comment 注释 64 extends 39 layout 39 继承模板 layout 64 if condition if开始
  • Plotly安装与使用方法

    Plotly是新一代的Python数据可视化开发库 xff0c 它提供了完善的交互能力和灵活的绘制选项 本文将介绍新手如何安装plotly并编写第一个plotly绘图程序 xff0c 以及使用plotly绘制常见的5种数据图表 与Matpl
  • MOSFET数字孪生实战【Python】

    本文将介绍如何使用 Python 构建电子开关 xff08 晶体管 xff09 的数字孪生 1 什么是数字孪生 xff1f IBM 将数字孪生定义如下 数字孪生是一种旨在准确反映物理对象的虚拟模型 xff0c 并指出创建数字孪生的主要促成因
  • Python三维地址建模教程【Gempy】

    Gempy 是一个开源 Python 库 xff0c 用于生成完整的 3D 结构地质模型 该库是从界面 断层和层方向创建地质模型的完整开发 xff0c 它还关联地质层序列以表示岩石侵入和断层顺序 地质建模算法基于通用协同克里金插值法 xff
  • 10个值得收藏的ChatGPT辅助编程技巧

    在我们开始之前 xff0c 你必须先了解编程语言 xff0c 然后才能相信 ChatGPT 抛给你的任何东西 我必须明确这一点 xff0c 因为许多误入歧途的绵羊被告知 ChatGPT 是新的圣杯 xff0c 开发人员将被淘汰 推荐 xff
  • Stable Diffusion - API和微服务开发

    Stable Diffusion 是一种尖端的开源工具 xff0c 用于从文本生成图像 Stable Diffusion Web UI 通过 API 和交互式 UI 打开了许多这些功能 我们将首先介绍如何使用此 API xff0c 然后设置
  • 软件行业的最后十年【ChatGPT】

    在这篇文章中 xff0c 我将说明像 ChatGPT 这样的生成式人工智能 GAI 将如何在十年内取代软件工程师 预测被离散化为 5 个阶段 xff0c 总体轨迹趋向于完全接管 但首先 xff0c 一个简短的前言 推荐 xff1a 用 NS
  • 30个最常用的空间SQL用例

    在开始使用空间 SQL 时 xff0c 至少对我而言 xff0c 最大的挑战之一是拥有一个快速简便的参考 xff0c 以将你当前的 GIS 工作流转换为 SQL 有许多令人惊叹的资源可以扩展这方面的知识 xff0c 但本指南旨在成为一本真正