sql >> Databáze >  >> RDS >> Sqlserver

Funkce LEN nezahrnuje koncové mezery v SQL Server

To je jasně zdokumentováno společností Microsoft v MSDN na http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, kde je uvedeno LEN „vrací počet znaků zadaného řetězcového výrazu, s výjimkou koncové mezery“. Je to však snadno přehlédnutelný detail, pokud si nejste opatrní.

Místo toho musíte použít funkci DATALENGTH – viz http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx – která „vrací počet bajtů použitých k reprezentaci libovolného výrazu“.

Příklad:

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. Jak získat ID posledního aktualizovaného řádku v MySQL?

  2. Jak odstranit část řetězce v oracle

  3. MySQL Change Collation of All Tables

  4. Práce s MyISAM v MySQL