私は与えられた結果を生成する次のクエリを持っています。SQLクエリ - 条件に基づいて1行またはその他の行を選択してください
SELECT
p.BookingID, p.PaxID, p.LeadPax, p.FirstName AS LeadPaxName
FROM
[dbo].[BookingV2_Pax] p
WHERE
p.[LeadPax] = 1
UNION
SELECT
PN.BookingID, PN.PaxID, PN.LeadPax, PN.LeadPaxName
FROM
(SELECT
p.BookingID, p.PaxID, p.LeadPax, p.FirstName AS LeadPaxName,
ROW_NUMBER() OVER (PARTITION BY p.BookingID ORDER BY p.PaxID) AS rn
FROM
[dbo].[BookingV2_Pax] p
WHERE
p.[LeadPax] = 0) PN
WHERE
PN.rn = 1
結果:
私はLeadPax = true
を持っている行を選択し、LeadPax = false
を持っている他の行から最初の行を選択され、ここでやっている何私が望むのは、LeadPax = 1
またはLeadPax = 0
の行を選択することです。
これは列に関連する問題の場合、CASE
またはCOALESCE
を使用できますが、これを効率的に行えますか?
また、元のクエリを最適化する方法上の任意のポインタは非常
** CodeReview **、別の** SE **サイトに移動してください。 –