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

Mệnh đề WHERE trong SQL so khớp các giá trị với dấu cách ở cuối

Đó là kết quả mong đợi:trong SQL Server, = toán tử bỏ qua dấu cách ở cuối khi thực hiện so sánh.

SQL Server tuân theo đặc tả ANSI / ISO SQL-92 (Phần 8.2, Quy tắc chung # 3) về cách so sánh chuỗi với khoảng trắng. Tiêu chuẩn ANSI yêu cầu đệm cho các chuỗi ký tự được sử dụng trong so sánh để độ dài của chúng khớp với nhau trước khi so sánh chúng. Phần đệm ảnh hưởng trực tiếp đến ngữ nghĩa của các vị từ mệnh đề WHERE và HAVING cũng như các so sánh chuỗi Transact-SQL khác. Ví dụ:Transact-SQL coi các chuỗi 'abc' và 'abc' là tương đương với hầu hết các thao tác so sánh.

Ngoại lệ duy nhất cho quy tắc này là vị từ LIKE. Khi phía bên phải của biểu thức vị từ LIKE có một giá trị có dấu cách ở cuối, SQL Server không đệm hai giá trị vào cùng độ dài trước khi so sánh xảy ra. Bởi vì mục đích của vị từ LIKE, theo định nghĩa, là để tạo điều kiện thuận lợi cho việc tìm kiếm mẫu thay vì kiểm tra bình đẳng chuỗi đơn giản, điều này không vi phạm phần của đặc tả ANSI SQL-92 đã đề cập trước đó.

Nguồn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết nối với mssql bằng pdo thông qua PHP và Linux?

  2. Tạo chỉ mục trên một biến bảng

  3. Thống kê Sử dụng Chỉ mục Máy chủ SQL

  4. Các cách để biết cách đối phó với lỗi cơ sở dữ liệu trong SQL Server

  5. Mục đích của bảng hệ thống master..spt_values ​​là gì và ý nghĩa của các giá trị của nó là gì?