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

SQL - Tại sao phải đệm khoảng trắng khi so sánh các ký tự?

Bạn đang nhầm lẫn giữa các loại ký tự khác nhau và những gì đang xảy ra. Khi bạn thực thi:

SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '

Không có khoảng trắng nào được thêm "vào mọi hàng trong SOME_TABLE". Câu hỏi duy nhất là độ rộng của kết quả. Chiều rộng này được đặt bởi thuộc tính của các cột trong SOME_TABLE, không phải bởi những gì xuất hiện trong mệnh đề WHERE.

Nếu CUSTOMER_NAME của bạn được khai báo là giá trị char (x), thì chuỗi phải có độ dài đó. Giả sử, nó là char(10) và bạn gán 'Popeye' cho nó. Giá trị có sáu ký tự và giá trị này phải được đệm thành 10, bằng cách nào đó. Tiêu chuẩn SQL là đặt ở phía bên tay phải, tạo ra giá trị 'Popeye ' .

Nếu bạn muốn các chuỗi có độ dài thay đổi, hãy sử dụng varchar hoặc varchar2.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong trình điều khiển Oracle JDBC, điều gì xảy ra với múi giờ khi bạn ghi ngày Java vào cột TIMESTAMP?

  2. Cách nhanh nhất để chèn dữ liệu vào bảng Oracle là gì?

  3. Cách cập nhật một cột với nối hai cột khác trong cùng một bảng

  4. so sánh ngày với một định dạng được xác định trước. pl sql

  5. Truy vấn kiểu dữ liệu Oracle Clob