使用SELECT语句无INSERT构建表 解决查询返回6列需输出3列问题
你目前的写法是把两组数据都定义在了同一条SELECT语句的输出列中,所以最终会返回6列结果。要实现3列多行的结构,只需要把不同行的数据拆为独立的SELECT子句,用UNION ALL拼接即可,全程不需要执行INSERT操作。
修改后的SQL语句如下:
DECLARE @MetresPerMile FLOAT = 1609.344; DECLARE @LOCStart1 GEOGRAPHY = GEOGRAPHY::Point(48.83000,-97.31000,4326) DECLARE @LOCDest1 GEOGRAPHY = GEOGRAPHY::Point(48.83000,-97.31000,4326) DECLARE @LOCStart2 GEOGRAPHY = GEOGRAPHY::Point(22.9230000,-94.5342000,4326) DECLARE @LOCDest2 GEOGRAPHY = GEOGRAPHY::Point(22.9230000,-94.5342000,4326) SELECT '1' AS [Start], '1' AS [Dest], @LOCStart1.STDistance(@LOCDest1) / @MetresPerMile AS [Distance] UNION ALL SELECT '2' AS [Start], '2' AS [Dest], @LOCStart2.STDistance(@LOCDest1) / @MetresPerMile AS [Distance]
如果后续需要新增更多行数据,只需要继续追加UNION ALL + 对应SELECT子句即可。
内容的提问来源于stack exchange,提问作者suhabari
相关产品推荐
相关产品推荐

