2008-10-23 8 views

Répondre

66

Utilisez DataLength()

SELECT * FROM YourTable WHERE DataLength(NTextFieldName) > 0 
19

L'indice est dans la question: utiliser DATALENGTH(). Notez qu'il a un comportement différent de LEN():

SELECT LEN(CAST('Hello ' AS NVARCHAR(MAX))), 
     DATALENGTH(CAST('Hello ' AS NVARCHAR(MAX))), 
     DATALENGTH(CAST('Hello ' AS NTEXT)) 

retours 5, 16, 16.

En d'autres termes, DATALENGTH() ne supprime pas les espaces de fin et retourne le nombre d'octets, alors que LEN() Rogne l'arrière espaces et renvoie le nombre de caractères.

0
Select Max(DataLength([NTextFieldName])) from YourTable 
Questions connexes