Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Sqlite根据点信息生成距离表_C++_Sql_Sqlite - Fatal编程技术网

C++ Sqlite根据点信息生成距离表

C++ Sqlite根据点信息生成距离表,c++,sql,sqlite,C++,Sql,Sqlite,我有一个包含几个点坐标的表格 | PointName | XCoor | YCoor | +-----------+-------+-------+ | P1 | X1 | Y1 | +-----------+-------+-------+ | P2 | X2 | Y2 | +-----------+-------+-------+ .... 我想生成一个包含两点之间距离的表 | Point1Name | Point2Name | Dist

我有一个包含几个点坐标的表格

| PointName | XCoor | YCoor |
+-----------+-------+-------+
|    P1     |  X1   |  Y1   |
+-----------+-------+-------+
|    P2     |  X2   |  Y2   |
+-----------+-------+-------+
....
我想生成一个包含两点之间距离的表

| Point1Name | Point2Name | Distance |
+------------+------------+----------+
|    P1      |    P2      |  ZZZZZ   |
+------------+------------+----------+
....
为了能够计算两点之间的距离,我启用了动态扩展加载并用于算术计算。但是,我不太确定是否可以使用任何类型的SQL技巧创建输出表

<>我需要C++程序中的这个函数的真实性,所以在最坏的情况下,我会尝试用C++方式来做而不是使用SQL语句。然而,这需要我使用和定义回调函数,并且很可能在第一个回调函数中运行另一个回调函数以获得所需的输出

提前谢谢

SELECT
   a.PointName AS Point1Name,
   b.PointName AS Point2Name, 
   POWER(POWER(a.xCoor - b.xCoor, 2) + POWER(a.yCoor - b.yCoor, 2), 1 / 2) AS Distance
FROM
   Points a, Points b
WHERE
   a.PointName <> b.PointName
;
每个距离为p1和p2的两倍


将使每个距离为p1和p2的两倍。此SQL将为您生成一个表:

create table distances as
select a.PointName as Point1Name, b.PointName as Point2Name,
  sqrt((a.XCoor - b.XCoor) * (a.XCoor - b.XCoor) + (a.YCoor - b.YCoor) * (a.YCoor - b.YCoor)) as Distance
from points a, points b
where a.rowid != b.rowid

你真的需要把它放在桌子上吗?当您想要获取值时,可以只执行select语句。

此SQL应该为您生成一个表:

create table distances as
select a.PointName as Point1Name, b.PointName as Point2Name,
  sqrt((a.XCoor - b.XCoor) * (a.XCoor - b.XCoor) + (a.YCoor - b.YCoor) * (a.YCoor - b.YCoor)) as Distance
from points a, points b
where a.rowid != b.rowid

你真的需要把它放在桌子上吗?您可以在需要获取值时执行select语句。

哇,sqlite实际上没有power函数,可以在oracle、mysql等中使用。因此,只有另一个答案是正确的,我不知道这一个是否应该留在这里,让人们可以在其他dbms中找到它,或者删除它。你的答案和我的一样正确-他使用的扩展库有一个强大的功能。哇,sqlite真的没有强大的功能,可以在oracle、mysql等中使用。所以只有另一个答案是正确的,我不知道这一个是否应该留在这里,让人们在其他dbms中找到它或删除它。你的答案和我的一样正确-他使用的扩展库具有幂函数。谢谢!我将使用此表进行另一个操作,因此我最好将其存储在数据库中,而不是每次都运行查询!谢谢我将使用此表进行另一个操作,因此我最好将其存储在数据库中,而不是每次都运行查询!