numero - ¿Hay alguna forma de DISTINCT o agrupar por un texto(o ntext) en SQL Server 2005?
sql server text length (4)
¿Puedes simplemente cambiar el tipo de datos de la columna a nvarchar (max)?
Considere agregar otra columna que tome los primeros 40 caracteres más o menos de su campo memo, y agrupe eso. Agrupar en un campo memo va a ser realmente lento si tiene mucho texto allí.
UPDATE myTable SET myNewField = LEFT(myOldField, 40);
En una tabla, tengo una columna llamada MEMO_TEXT que es un tipo de datos de texto. Cuando intento crear una vista y uso un GROUP BY, obtengo el siguiente error:
Error de la base de datos de SQL Server: los tipos de datos text, ntext e image no pueden ser comparados u ordenados, excepto cuando se usa IS NULL o el operador LIKE.
Obtengo este error cuando trato de hacer un DISTINCT en la consulta también. ¿Alguna idea sobre cómo solucionar esto?
Si necesita más información, hágamelo saber.
¿Sabes que nunca habrá datos repetidos en el campo ntext? Puede hacer lo distinto en una tabla derivada en los otros campos y luego unirse a la tabla con el campo ntext y tomarlo en la consulta externa.
algo así como (suponer field3 es el campo ntext)
select mt.idfield, a.field1, a.field2, mt.field3
from mytable mt
join
(select disitinct mt1.idfield, mt1.field1, mot.field2 from mytable mt1
join myothertable mot on mt1.idfield = mot.idfield) a
on a.ifield = mt.idfield
Prueba estos ...
SELECT DistinctMemo = DISTINCT(CAST(MEMO_TEXT AS varchar(max)))
FROM MyTable
-- or
SELECT DistinctMemo = CAST(MEMO_TEXT AS varchar(max))
FROM MyTable
GROUP BY CAST(MEMO_TEXT AS varchar(max))
Un truco a su alrededor es nvarchar(max)
como un nvarchar(max)
.
Esta es una forma documentada de aumentar la longitud de la cuerda más allá de 4,000:
nvarchar [ ( n | max ) ]
Datos de cadena Unicode de longitud variable. n define la longitud de la cadena y puede ser un valor de 1 a 4.000. max indica que el tamaño máximo de almacenamiento es 2 ^ 31-1 bytes (2 GB). El tamaño de almacenamiento, en bytes, es dos veces la longitud real de los datos ingresados + 2 bytes. Los sinónimos de ISO para nvarchar son caracteres nacionales variables y caracteres nacionales que varían.
Un truco similar se aplica a varchar () .