A CASE
изразът връща стойност от THEN
част от клаузата. Можете да го използвате по следния начин:
SELECT *
FROM sys.indexes i
JOIN sys.partitions p
ON i.index_id = p.index_id
JOIN sys.allocation_units a
ON CASE
WHEN a.type IN (1, 3) AND a.container_id = p.hobt_id THEN 1
WHEN a.type IN (2) AND a.container_id = p.partition_id THEN 1
ELSE 0
END = 1
Имайте предвид, че трябва да направите нещо с върнатата стойност, напр. сравни го с 1. Вашето изявление се опита да върне стойността на задание или тест за равенство, нито едно от които няма смисъл в контекста на CASE
/THEN
клауза. (Ако BOOLEAN
беше тип данни, тогава тестът за равенство би имал смисъл.)