ความแตกต่างระหว่าง“ expression <= 1.” และ“ expression <= 1” หรือไม่


11

การตรวจสอบรหัสและคำสั่งเคสมีความหมายexpression <= 1.ตรงข้ามกับ<= 1

ฉันไม่แน่ใจว่าจุดประสงค์ของ1.มันคืออะไร ความคิดใด ๆ


3
SQL Server ถือว่า1.ตัวอักษรเป็นตัวเลข (1,0) แทนที่จะเป็นจำนวนเต็มเนื่องจากช่วงเวลา บางทีอาจมีการระบุไว้เพื่อให้ตรงกับประเภทข้อมูลของนิพจน์ (แนวปฏิบัติที่ดีที่สุด) โดยส่วนตัวฉันจะระบุ1.0ในกรณีนั้น
Dan Guzman

การขาดใด ๆ0หลังจากจุดทศนิยมและความจริงที่decimalมีลำดับความสำคัญของประเภทข้อมูลที่สูงกว่าintดังนั้นค่าคงที่จะถูกส่งออกไปโดยปริยายถ้าจำเป็นจะทำให้ฉันคิดว่ามันน่าจะเป็นข้อผิดพลาดในการพิมพ์มากกว่าที่จะพิจารณา
Martin Smith

คำตอบ:


18

1.เป็นค่าคงที่NUMERIC(หรือDECIMAL) ในขณะ1ที่INTEGERค่าคงที่ ในบางกรณีมีประโยชน์ในการระบุชนิดข้อมูลของค่าคงที่อย่างชัดเจนเพื่อหลีกเลี่ยงการแปลงชนิดโดยนัยที่ไม่จำเป็น (หรือไม่พึงประสงค์)

ยกตัวอย่างเช่น

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

จากนั้นselect 1/f1 from tส่งคืน0( INTEGER) ขณะที่select 1./f1 from tส่งคืน0.5( DECIMAL)

หนึ่งอาจสันนิษฐานว่าทางด้านซ้ายของการเปรียบเทียบในตัวอย่างของคุณมีDECIMALคอลัมน์และการระบุDECIMALค่าคงที่อย่างชัดเจนสามารถปรับปรุงประสิทธิภาพเล็กน้อยโดยหลีกเลี่ยงการส่งประเภทโดยนัย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.