Un CASE
espressione restituisce un valore da THEN
parte della clausola. Potresti usarlo così:
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
Nota che devi fare qualcosa con il valore restituito, ad es. confrontalo con 1. La tua affermazione ha tentato di restituire il valore di un compito o di verificare l'uguaglianza, nessuno dei quali ha senso nel contesto di un CASE
/THEN
clausola. (Se BOOLEAN
era un tipo di dati, quindi il test di uguaglianza avrebbe senso.)