В следующих примерах данных мне нужно выбрать все записи, где
ModelOut=ModelOut
(все) ModelIn<>ModelOut
ModelIn=ModelOut
Проблема в ModelIn<>ModelOut
, потому что я не знаю, как это сделать с помощью оператора CASE
в предложении where.
Declare @type int;
SET @type=2; --- ModelIn <> ModelOut
Create table #Data(ID int, ModelIn varchar(10), ModelOut varchar(10))
INSERT INTO #Data
SELECT 1 AS ID,'A' AS ModelIn, 'B' AS ModelOut
UNION ALL
SELECT 2 AS ID,'B' AS ModelIn, 'B' AS ModelOut
UNION ALL
SELECT 3 AS ID,'C' AS ModelIn, 'D' AS ModelOut
UNION ALL
SELECT 4 AS ID,'D' AS ModelIn, 'D' AS ModelOut
SELECT * FROM #Data
WHERE ModelOut =
CASE @type
WHEN 1 THEN ModelOut --- all
WHEN 2 THEN ??? --- ModelIn <> ModelOut
WHEN 3 THEN ModelIn --- ModelOut = ModelIn
END
;
Drop table #Data;