2012-07-20 4 views
2

나는 막혔다. 왜이 두 쿼리가 다른 결과를 반환합니까?쿼리에서 반올림 오류가 발생 했습니까?

declare @div varchar 
set @div = cast(4/3.0 as varchar) 
select @div 
-- returns 1 

select cast(4/3.0 as varchar) 
-- returns 1.3333 
+0

http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-을 읽어주십시오과 동일 varchar-without-length.aspx –

+0

이 게시물에 대한이 동작에 대한 추가 정보 찾기 http://beyondrelational.com/modules/2/blogs/70/posts/10824/column-length-and-data-length.aspx – Madhivanan

답변

5

길이가없는 varchar를 선언했기 때문에. 즉

declare @div varchar 

declare @div varchar(1) 
+2

@littlegreen 길이가 항상 varchar (및 nvarchar)를 정의하는 습관을 갖습니다. –

관련 문제