我想從參數@Display
獲取值0,1或2.當@Display = 0時,我想要顯示ec.IsEquipmentRelated
爲true的所有項目。當@Display = 0時,我想顯示ec.IsEquipmentRelated
爲false的所有項目,當@Display = 2時,我想顯示所有ec.IsEquipmentRelated
爲真的項目或 false。我如何在FROM
部分實現這一點?SELECT FROM取決於SQL中的參數
ALTER PROCEDURE [dbo].[Downtime_GetNewCause_EquimentLocation]
@DisplayInactive bit = 0,
@SortOrder INT = 0,
@Diplay INT = 0
AS
-- Main Data source
SELECT ic.IncidentCauseID
, 'EquimentRelated' = COALESCE(ec.IsEquipmentRelated, 0)
, ic.NewIncidentCauseID
, ic.DisplayName
, ic.IsLegacy
, el.EquipmentLocationID
, el.ShopID
, ec.EquipmentClassID
, ec.EquipmentAbbr
, el.ClassSequenceNumber
, el.EquipmentComponent
, el.CompSequenceNumber
, ic.IsActive
FROM Downtime_IncidentCauses ic
LEFT JOIN Downtime_EquipmentLocations el ON ic.EquipmentLocationID = el.EquipmentLocationID
LEFT JOIN Downtime_EquipmentClasses ec ON el.EquipmentClassID = ec.EquipmentClassID AND
CASE WHEN @Diplay = 0 THEN ...
CASE WHEN @Diplay = 1 THEN ...
CASE WHEN @Diplay = 2 THEN ...
我認爲將它放在外連接中不是一個好主意。 –
爲什麼不在外連接? –
看到兩者之間的性能比較會很有趣。不過,具體的問題是如何將它放在「FROM」部分。 – Narnian