相关疑难解决方法(0)

如何创建SQL Server函数以将子查询中的多行"连接"到单个分隔字段?

为了说明,假设我有两个表如下:

VehicleID Name
1         Chuck
2         Larry

LocationID VehicleID City
1          1         New York
2          1         Seattle
3          1         Vancouver
4          2         Los Angeles
5          2         Houston
Run Code Online (Sandbox Code Playgroud)

我想写一个查询来返回以下结果:

VehicleID Name    Locations
1         Chuck   New York, Seattle, Vancouver
2         Larry   Los Angeles, Houston
Run Code Online (Sandbox Code Playgroud)

我知道这可以使用服务器端游标完成,即:

DECLARE @VehicleID int
DECLARE @VehicleName varchar(100)
DECLARE @LocationCity varchar(100)
DECLARE @Locations varchar(4000)
DECLARE @Results TABLE
(
  VehicleID int
  Name varchar(100)
  Locations varchar(4000)
)

DECLARE VehiclesCursor CURSOR FOR
SELECT
  [VehicleID]
, [Name]
FROM [Vehicles]

OPEN VehiclesCursor

FETCH NEXT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string-concatenation

193
推荐指数
8
解决办法
13万
查看次数

由于数据错误,创建一个查询以填补表中的空白

我有一个包含以下架构的表:

DateTime [Creation Date] PK
int [Data]
Run Code Online (Sandbox Code Playgroud)

列数据具有来自传感器的值,如下所示:

123
225
354
578
0
2151
2331
0
2555
2678
Run Code Online (Sandbox Code Playgroud)

如您所见,值总是递增.

由于传感器中的问题,我们有时在有效值之间得到0.当我们尝试使用数据时,这会给我们带来一些问题,因此我们希望用某些东西填补这些空白.理想情况下,我们希望在上一个值和下一个值之间放置一个平均值,如果不可能,我们想重复之前的值.

这只是一个查询可行吗?

提前致谢.

sql t-sql sql-server

7
推荐指数
1
解决办法
185
查看次数

标签 统计

sql ×2

sql-server ×2

string-concatenation ×1

t-sql ×1