Tsql T-SQL-从视图中的数据创建图形
我对T-SQL、存储过程和MicrosoftSQLServerManagementStudio相当陌生 我在数据库中创建了一个名为BodyBasics的视图。在该视图中,有一列称为BackAngle。在BackAngle列中,我列出了用户背部弯曲的角度。数据类型为float,范围从90到180 此视图列中的一些示例值包括:Tsql T-SQL-从视图中的数据创建图形,tsql,Tsql,我对T-SQL、存储过程和MicrosoftSQLServerManagementStudio相当陌生 我在数据库中创建了一个名为BodyBasics的视图。在该视图中,有一列称为BackAngle。在BackAngle列中,我列出了用户背部弯曲的角度。数据类型为float,范围从90到180 此视图列中的一些示例值包括: 173,10786534157, 147,423570266, 170,196359990068, 148,774131860277, 153,439316876929, 1
173,10786534157, 147,423570266, 170,196359990068, 148,774131860277, 153,439316876929, 147,063469480619, 173,861485242977, 172,1319088368, 145,416983331938, 163,02645970309, 147,65814822779, 146,212510299859, 173,769456580658
视图如下所示:
| ID | Timestamp | RecordingId | BodyNumber | BackAngle |
我想做的是从视图中按时间顺序选择回角数据,并将数据绘制成图形
我尝试过的查询是:
GO
DECLARE @BackAngle TABLE(Backangle FLOAT);
INSERT @BackAngle(Backangle) SELECT dbo.ViewBodies.BackAngle FROM dbo.ViewBodies
WHERE dbo.ViewBodies.BackAngle IS NOT NULL
ORDER BY Timestamp;
SELECT geometry::STGeomFromText( 'LINESTRING(' + @BackAngle(Backangle) + ')' );
GO
我从这段代码中得到的错误是:
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near 'Backangle'.
Msg 102, Level 15, State 1, Line 9
Incorrect syntax near '('.
我从本文中获得了geometry::stGeomeFromText语法:
有人能指出我的代码有什么问题吗?这是否是正确的方法?有其他选择吗?您不需要临时表,您应该创建一个包含变量的文本字符串,以便在LINESTRING中使用它。作为比例线,可以使用行号(1,2,3,4,…)
请举例说明您在
BackAngle
中的值。没有必要先填充已声明的表。您可以直接调用该函数……一些示例:17310786534157、147423570266、170196359990068、148774131860277、15343916876929、147063469480619、173861485242977、1721319088368、145416983331938、16302645970309、14765814822779、1462510299959、173769456580658
DECLARE @WKT AS VARCHAR(8000);
SET @WKT =
STUFF(
(SELECT ','
+ CAST( ROW_NUMBER()
OVER (ORDER BY [timestamp]) AS VARCHAR(100))
+ ' ' + CAST( BackAngle AS VARCHAR(30) )
FROM ViewBodies
WHERE BackAngle IS NOT NULL
ORDER BY [timestamp]
FOR XML PATH('')), 1, 1, '');
SELECT geometry::STGeomFromText( 'LINESTRING(' + @WKT + ')', 0 );