Я работаю над представлением SQL, которое извлекает данные из таблицы с несколькими столбцами, отсортированными по одному столбцу, но я хочу, чтобы представление возвращало такие данные и помещало их в разные столбцы, отсортированные по собственному столбцу, не учитывая, данные принадлежат одной записи или нет.
Например, я создаю представление, которое возвращает два столбца с именами Give
и Ask
из таблицы, в которой есть четыре записи для столбца ID(0,1,2,3)
, Give (100, 90, 75, 60)
и Ask
как NULL, 110, 99, 100.
. Мне удалось создать представление, которое возвращает эти значения в следующем порядке
Give Ask
100 NULL
90 110
75 99
60 100
Но мне нужно представление, которое возвращает что-то вроде следующего
Give Ask
100 99
90 100
75 110
60 NULL
Как видно из вышеизложенного, столбец Give не связан со столбцом Ask после запуска представления, то есть в исходной таблице SQL записи для значений Give и Ask для ID 0 равны 100 и NULL соответственно, но в представлении значения Give и Ask для первой записи - это 100 и 99, в которых Give находится в порядке убывания, а запрос - в порядке возрастания.
Могу я узнать лучший способ добиться этого.
У меня есть следующий запрос на представление
CREATE VIEW [dbo].[Result]
AS
with CTE as(
SELECT distinct
CC.Product,
CC.Term,
iCC.Give,
iCC.Ask
FROM Cust CC
CROSS APPLY (SELECT TOP 3
Give,
Ask,
FROM Cust iCC
WHERE CC.Term = iCC.Term and CC.Product = iCC.Product
ORDER BY iCC.Give DESC, iCC.Ask ASC) iCC)
select Product, Term, Give, givelabel as label from CTE
union
select Product, Term, Ask, asklabel from CTE
GO