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の場合 がデータ型だった場合、同等性のテストは理にかなっています。)