Jedním ze způsobů, jak to udělat, by bylo definovat alias sloupce na jiné úrovni, abyste na něj mohli odkazovat dvakrát bez opakování výrazu.
( SELECT CASE WHEN @SortBy LIKE 'sloupec1 %' THEN Cast(sloupec1 AS SQL_VARIANT) WHEN @SortBy LIKE 'sloupec2 %' THEN Cast(sloupec2 AS SQL_VARIANT) WHEN @SortBy LIKE 'sloupec3 %' THEN 3ort WAGRIANT SQL(column) LIKE 'column4 %' THEN Cast(sloupec4 AS SQL_VARIANT) END) C(sort_col)Místo toho bych zvážil použití dynamického SQL. Tento druh dotazu catch all zabije myšlenku získat dobrý plán, který může používat indexy, aby se zabránilo řazení.