Um
CASE
expressão retorna um valor do THEN
parte da cláusula. Você poderia usá-lo assim: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
Observe que você precisa fazer algo com o valor retornado, por exemplo. compare-o com 1. Sua instrução tentou retornar o valor de uma atribuição ou teste de igualdade, nenhum dos quais faz sentido no contexto de um
CASE
/THEN
cláusula. (Se BOOLEAN
fosse um tipo de dados, então o teste de igualdade faria sentido.)