Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Funkcja LEN bez spacji końcowych w SQL Server

Zostało to wyraźnie udokumentowane przez firmę Microsoft w witrynie MSDN pod adresem http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, która stwierdza, że ​​LEN „zwraca liczbę znaków określonego wyrażenia ciągu, z wyłączeniem końcowe spacje". Jest to jednak łatwy szczegół do przeoczenia, jeśli nie jesteś ostrożny.

Zamiast tego musisz użyć funkcji DATALENGTH — zobacz http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx — która „zwraca liczbę bajtów użytych do reprezentowania dowolnego wyrażenia”.

Przykład:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 nie może się zalogować za pomocą nowo utworzonego użytkownika

  2. Sposób na wyodrębnienie z danych wartości DateTime bez sekund

  3. Uzyskanie minimum dwóch wartości w SQL

  4. Statystyki użycia indeksu SQL Server

  5. SQL Server 2017:kopiowanie danych programu SQL Server z systemu Linux do systemu Windows za pomocą usług SSIS