Я думаю, что вам нужны ISNULL()
и MAX() OVER()
, так что ваш запрос будет иметь что-то вроде этого:
SELECT
t1.PK
, t1.Id
, t1.Status
, ISNULL(t1.Worker, MAX(t1.Worker) OVER(PARTITION BY Id) ) Worker
, t1.CreatedDate
FROM #temp tl
ISNULL () проверит значение, если это значение равно null, заменит его вторичное значение. это тот же самый случай, который у вас есть в вашем запросе.
MAX(t1.Worker) OVER(PARTITION BY Id)
Поскольку функции агрегирования исключают нули, мы используем это преимущество и используем его с предложением OVER()
для разделения строк на Id
и получения значения, которое нам нужно, с помощью одной из функций агрегирования.
Это, кажется, невозможно в самом администраторском сайте Django (Вы не должны включать встроенные поля в "поля" вообще), но можно использовать JS для перемещения встроенных полей везде, где Вы хотите.