У меня есть две таблицы, упрощенные, как показано ниже.
CREATE TABLE value(
Timestamp DATETIME2,
Value float NOT NULL,
PRIMARY KEY(Timestamp)
);
CREATE TABLE location(
Timestamp DATETIME2,
Position GEOMETRY NOT NULL,
PRIMARY KEY(Timestamp)
);
Выполнение простого LEFT JOIN, такого как:
SELECT V.Timestamp, V.Value, L.Position
FROM value V
LEFT JOIN location L ON V.Timestamp = L.Timestamp;
Это дает все значения, но есть NULL'sприсутствует там, где нет точного совпадения по Timestamp
.
Моя цель - получить интерполированную позицию для каждого значения в таблице значений.Мне нужно как-то интерполировать значения в моем запросе, и именно здесь я застреваю.
РЕДАКТИРОВАТЬ: с тех пор я обнаружил, что могу добавить оператор CASE для проверки на NULL
SELECT
V.Timestamp,
V.Value,
CASE WHEN L.Position IS NULL THEN
(<something clever here>)
ELSE
L.Position
END As Position
FROM value V
LEFT JOIN location L ON V.Timestamp = L.Timestamp;