“식 <= 1”의 차이점은 무엇입니까? 및 "발현 <= 1"?


11

코드를 검토 및 사례 문이있다 expression <= 1.등의 반대<= 1

의 목적이 무엇인지 잘 모르겠습니다 1.. 이견있는 사람?


3
SQL Server는 1.마침표로 인해 리터럴을 정수 대신 숫자 (1,0)로 처리합니다 . 아마도 표현식의 데이터 유형과 일치시키기 위해 지정되었을 수도 있습니다 (모범 사례). 개인적 1.0으로 그 경우에 지정하겠습니다 .
Dan Guzman

0소수점 이하 의 부족과 decimal데이터 유형 우선 순위보다 높은 데이터 유형 우선 순위가 있다는 사실 은 int필요하다면 암시 적으로 캐스트 될 것입니다.
Martin Smith

답변:


18

1.A는 NUMERIC(또는 DECIMAL동안) 상수, 1INTEGER상수. 경우에 따라 불필요하거나 바람직하지 않은 암시 적 유형 변환을 피하기 위해 상수의 데이터 유형을 명시 적으로 지정하는 것이 유용합니다.

예를 들어

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.