¿Cómo realizar un Order by o un Group by a un tipo de dato Text en SQL Server?

Como sabemos un tipo de dato Text es un tipo de datos que no se le puede aplicar un ordenamiento en SQL Server. Si intentamos hacerlo recibiremos un mensaje como este:

No se pueden comparar ni ordenar los tipos de datos text, ntext e image, excepto cuando se utiliza el operador IS NULL o LIKE.

Pero hay una forma con la cual podemos lograrlo, y es convertirlo en un tipo de dato ordenable, en este caso en un tipo varchar, como a continuación muestro:


-- Ordenamiento
select * from tabla
order by CAST(campoText AS varchar(max))

-- Agrupamiento
select CAST(campoText AS varchar(max)) from tabla
group by CAST(campoText AS varchar(max))

De esta manera podemos ordenar o agrupar un tipo de dato Text en SQL Server

Autor: Héctor de León

Desarrollador de software, lector compulsivo.