Wie Sie Paging anwenden, wenn wir Union alle verwenden, um das Ergebnis aus zwei Tabellen zu bekommen. Unter dem Code hier bin ich doppelte Werte in 'row_num' Spalte, die für Paging verwendet wurde.SQL Server verwenden Union alle und Paging
;WITH resultSetCTE AS
(
SELECT
ROW_NUMBER() OVER
(
ORDER BY nr.is_read,nr.is_read_cashier,
CASE @columnSortNameDirection WHEN 'Pin' THEN r.name END ASC,
CASE @columnSortNameDirection WHEN 'PinDesc' THEN r.firstname END DESC
) AS 'row_num',
r.clave_receiver AS 'Pin',
r.id_branch AS 'Id_Branch',
r.id_receiver AS 'Id_receiver',
s.name_sender AS 'SenderFullName',
r.name_receiver AS 'ReceiverFullName',
r.id_flag_receiver AS 'Status',
pas.option_name AS 'ApprovalStatus',
r.mode_pay_receiver AS 'PaymentModeId'
UNION ALL
SELECT
ROW_NUMBER() OVER
(
ORDER BY nr.is_read,nr.is_read_cashier,
CASE @columnSortNameDirection WHEN 'Pin' THEN r.name END ASC,
CASE @columnSortNameDirection WHEN 'PinDesc' THEN r.firstname END DESC
) AS 'row_num',
r.clave_receiver AS 'Pin',
r.id_branch AS 'Id_Branch',
r.id_receiver AS 'Id_receiver',
s.name_sender AS 'SenderFullName',
r.name_receiver AS 'ReceiverFullName',
r.id_flag_receiver AS 'Status',
pas.option_name AS 'ApprovalStatus',
r.mode_pay_receiver AS 'PaymentModeId'
)
SELECT *,
(SELECT COUNT(1) FROM resultSetCTE) AS 'RecordCount'
FROM resultSetCTE
WHERE row_num BETWEEN (1 - 1) * 15 + 1 AND 1 * 15
ORDER by IsRead,IsReadCashier
bereiten Abfrage funktioniert ziemlich gut nur benötigt, um zu ändern wählen ROW_NUMBER() OVER ( ORDER BY A.IsRead ) – Nikki