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
나는 막혔다. 왜이 두 쿼리가 다른 결과를 반환합니까?쿼리에서 반올림 오류가 발생 했습니까?
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
길이가없는 varchar를 선언했기 때문에. 즉
declare @div varchar
는
declare @div varchar(1)
@littlegreen 길이가 항상 varchar (및 nvarchar)를 정의하는 습관을 갖습니다. –
http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-을 읽어주십시오과 동일 varchar-without-length.aspx –
이 게시물에 대한이 동작에 대한 추가 정보 찾기 http://beyondrelational.com/modules/2/blogs/70/posts/10824/column-length-and-data-length.aspx – Madhivanan