sql >> Database teknologi >  >> RDS >> Sqlserver

LEN-funktion inkluderer ikke efterfølgende mellemrum i SQL Server

Dette er tydeligt dokumenteret af Microsoft i MSDN på http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, som angiver LEN "returnerer antallet af tegn i det angivne strengudtryk, undtagen efterstillede emner". Det er dog en let detalje at gå glip af, hvis du ikke er på vagt.

Du skal i stedet bruge DATALENGTH-funktionen - se http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx - som "returnerer antallet af bytes brugt til at repræsentere ethvert udtryk".

Eksempel:

SELECT 
    ID, 
    TestField, 
    LEN(TestField) As LenOfTestField,           -- Does not include trailing spaces
    DATALENGTH(TestField) As DataLengthOfTestField      -- Shows the true length of data, including trailing spaces.
FROM 
    TestTable


  1. Sådan fungerer DATEDIFF() i MariaDB

  2. MariaDB ROWNUM() Forklaret

  3. Hvordan beregner man retentionsrate i SQL?

  4. MySQL-fejl 1436:Overløb af trådstak med simpel forespørgsel