在舍入SQL中的平均值时如何检索小数

Sku*_*nia 37 sql sql-server sql-server-2008

这是我的SQL语句

SELECT ROUND(AVG(column_name), 100) 
FROM [database].[dbo].[table]
Run Code Online (Sandbox Code Playgroud)

我检索的答案是908行3之间可能的数字范围1 - 5.

我需要它说3.03.09.这可能吗?

Guf*_*ffa 99

平均值将具有与值相同的数据类型,因此强制转换值:

SELECT ROUND(AVG(CAST(column_name AS FLOAT)), 2) FROM [database].[dbo].[table]
Run Code Online (Sandbox Code Playgroud)


小智 5

我不确定这是否会帮助你skullomania,但试试这个

    SELECT CAST(AVG(CAST(column_name as DECIMAL(10,2))) AS DECIMAL(10,2))FROM [table_name]
Run Code Online (Sandbox Code Playgroud)

浮点数是近似值,另一方面,十进制数将使其更精确,您可能想要读取浮点数数学和小数.我一开始就挣扎着,有时还会感到迷茫.希望这会帮助你.

在C#中不确定我是否可以在此处发布答案而遇到麻烦,但您是否尝试将其转换为双精度并使用 ExecuteScalar()

试试这个:

    protected void Page_Load(object sender, EventArgs e)
    {
     SqlConnection conn= sqlconnectionstring;
     SqlCommand cmd = new SQLCommand("SELECT STATEMENT",conn);
     cmd.CommandType = CommandType.Text;
     conn.Open();
     Double result = Convert.ToDouble(cmd.ExecuteScalar());
     lblresult.text = "the result is " + result;
     conn.Dispose();
     cmd.Dispose();
    }
Run Code Online (Sandbox Code Playgroud)