SQL Server分区查询

Dan*_*ish 2 sql-server sql-server-2008

当我运行查询时:

select (100/50)
Run Code Online (Sandbox Code Playgroud)

它给了我2 - 好.

但是当我运行查询时:

select (50/100)
Run Code Online (Sandbox Code Playgroud)

我原以为它会给我0.5 ......但它给了我0呢?为什么?我怎样才能得到0.5?

select (25/(30))*100
Run Code Online (Sandbox Code Playgroud)

我被期待它会给我83.33,但它也给0?

Dib*_*tar 9

当你除以两个整数时,结果也是一个整数,所以50/100是0.5,这是一个0的整数.

要获得小数点,请写:

Select 50.0 / 100
Run Code Online (Sandbox Code Playgroud)

或者转换小数的整数 - 即

SELECT (CAST(20 AS DECIMAL(5,1))/30)
Run Code Online (Sandbox Code Playgroud)