En CASE
udtryk returnerer en værdi fra THEN
del af klausulen. Du kan bruge det på denne måde:
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
Bemærk, at du skal gøre noget med den returnerede værdi, f.eks. sammenlign det med 1. Dit udsagn forsøgte at returnere værdien af en opgave eller prøve for lighed, hvoraf ingen af dem giver mening i sammenhæng med en CASE
/THEN
klausul. (Hvis BOOLEAN
var en datatype, så ville testen for lighed give mening.)