Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Hàm LEN không bao gồm dấu cách ở cuối trong SQL Server

Điều này được Microsoft ghi lại rõ ràng trong MSDN tại http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, trong đó LEN "trả về số ký tự của biểu thức chuỗi được chỉ định, loại trừ ô trống ở cuối ”. Tuy nhiên, đây là một chi tiết dễ bỏ sót nếu bạn không cảnh giác.

Thay vào đó, bạn cần sử dụng hàm DATALENGTH - xem http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx - "trả về số byte được sử dụng để đại diện cho bất kỳ biểu thức nào".

Ví dụ:

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. Thực thi thủ tục đã lưu trữ với tham số Đầu ra?

  2. Có "HOẶC" trong điều kiện INNER JOIN có phải là một ý tưởng tồi không?

  3. Cách sử dụng TẤT CẢ Toán tử logic trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 126

  4. Làm cách nào để lấy tọa độ giới hạn cho mã bưu chính (zip) của Hoa Kỳ?

  5. Cách khôi phục niềm tin trong ràng buộc khóa ngoại trong SQL Server (Ví dụ T-SQL)