Ein CASE
expression gibt einen Wert aus THEN
zurück Teil der Klausel. Sie könnten es folgendermaßen verwenden:
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
Beachten Sie, dass Sie etwas mit dem zurückgegebenen Wert tun müssen, z. Vergleichen Sie es mit 1. Ihre Anweisung hat versucht, den Wert einer Zuweisung zurückzugeben oder auf Gleichheit zu prüfen, was im Kontext eines CASE
nicht sinnvoll ist /THEN
Klausel. (Falls BOOLEAN
ein Datentyp wäre, dann würde der Test auf Gleichheit Sinn machen.)