СОЮЗ несколько С результатами
У меня есть два похожих запроса.
Как следующие:
with CategoryHistory AS (
SELECT
category.GUID as id,
----HERE MANY FIELDS----
category.__$operation AS operation,
map.tran_begin_time as beginT,
map.tran_end_time as endT
FROM cdc.fn_cdc_get_all_changes_dbo_EXT_BalanceHC_ZapasCategory(sys.fn_cdc_get_min_lsn('dbo_EXT_BalanceHC_ZapasCategory'), sys.fn_cdc_get_max_lsn(), 'all') AS category
INNER JOIN [cdc].[lsn_time_mapping] map
ON category.[__$start_lsn] = map.start_lsn
)
SELECT operation, fields, valueses, beginT, endT FROM CategoryHistory
unpivot ( [valueses] for fields in
(
----HERE MANY FIELDS----
))p
Могу я UNION
из WITH
Результаты? Проблема, которую я хочу UNPIVOT
некоторые поля из результата запроса.
1 ответ
Возможно, вы просто хотите что-то вроде этого:
SELECT ch.operation, ch.beginT, ch.endT, v.field, v.val
FROM CategoryHistory ch cross apply
(values ('field1', field1), ('field2', field2), . . .
) f(field, val);
Я считаю это проще, чем с помощью unpivot
,