Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Функция LEN, която не включва крайни интервали в SQL Server

Това е ясно документирано от Microsoft в MSDN на адрес http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, което гласи, че LEN „връща броя на знаците на посочения низов израз, с изключение крайни празни места". Това обаче е лесен детайл, който можете да пропуснете, ако не сте предпазливи.

Вместо това трябва да използвате функцията DATALENGTH - вижте http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx - която "връща броя на байтовете, използвани за представяне на всеки израз".

Пример:

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 HAS_Permis_BY_Name и нейните случаи на употреба

  2. Активирайте SQL Server Agent чрез SSMS

  3. Как да върнете списък с типове данни в SQL Server (T-SQL)

  4. Клауза WHERE срещу ON при използване на JOIN

  5. Намиране на реда на възли в XML документ в SQL Server