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)的習慣。 – 2012-07-20 14:15:16
請仔細閱讀http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring- varchar-without-length.aspx – 2012-07-20 14:24:56
查找此帖子中更多此行爲的信息 http://beyondrelational.com/modules/2/blogs/70/posts/10824/column-length-and-data-length.aspx – Madhivanan 2012-07-20 14:11:08