Sự khác biệt giữa biểu thức của </ 1. và biểu thức của </ 1


11

Xem lại mã và một tuyên bố trường hợp expression <= 1.trái ngược với<= 1

Tôi không chắc mục đích của 1.nó là gì. Có suy nghĩ gì không?


3
SQL Server coi 1.chữ bằng số (1,0) thay vì số nguyên do dấu chấm. Có lẽ điều đó đã được chỉ định để khớp với kiểu dữ liệu của biểu thức (một cách thực hành tốt nhất). Cá nhân, tôi chỉ định 1.0trong trường hợp đó.
Dan Guzman

Việc thiếu bất kỳ dấu nào 0sau dấu thập phân và thực tế decimalcó mức độ ưu tiên kiểu dữ liệu cao hơn so với inthằng số sẽ được đặt ngầm nếu có thể sẽ khiến tôi nghĩ rằng đó có thể là lỗi đánh máy thay vì cố tình.
Martin Smith

Câu trả lời:


18

1.là một hằng số NUMERIC(hoặc DECIMAL), trong khi 1INTEGERhằng số. Trong một số trường hợp, rất hữu ích khi chỉ định loại dữ liệu của hằng số một cách rõ ràng để tránh chuyển đổi loại ngầm định không cần thiết (hoặc không mong muốn).

Hãy xem xét, ví dụ

create table t(f1 int);
insert into t values (2);

Sau đó select 1/f1 from ttrả về 0( INTEGER), trong khi select 1./f1 from ttrả về 0.5( DECIMAL).

Người ta có thể giả định rằng ở phía bên trái của so sánh trong ví dụ của bạn có một DECIMALcột và việc chỉ định rõ ràng một DECIMALhằng số có thể cải thiện hiệu suất một cách rõ ràng bằng cách tránh sử dụng kiểu ẩn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.