Die*_*ego 3 c# sql sqlite casting
我在使用 SQLite.NET 对 SQLite 数据库运行的查询上有以下表达式。
SUM(Detail.Qty * Products.Weight) AS MovedWeight
Run Code Online (Sandbox Code Playgroud)
查询有效,但由于 Detail.Qty 是十进制,而 Weight 也是十进制,它返回一个浮点数。我正在尝试将其转换为 DECIMAL(10,2) 之类的内容。我知道 SQLite 对数据类型很特别,我确实尝试使用 CAST 但没有成功。
CAST(SUM(Detail.Qty * Products.Weight) AS DECIMAL(10,2)) AS MovedWeight
Run Code Online (Sandbox Code Playgroud)
它也可以工作,但没有注意精度 (10,2),并给我与第一个示例相同的结果。
有人有想法吗?在 DataTable 中将结果转换为十进制也是可以接受的,但我不知道如何在没有丑陋、消耗资源的循环的情况下做到这一点(预计查询在某个时候将返回 3000 或更多结果)。
在SQLite的,在类型名后不括号内的数字做任何事情; 它们只是为了与其他数据库兼容。 VARCHAR(100)
无非是“文本亲和力”,DECIMAL(10, 2)
无非是“数字亲和力”。
ROUND() 函数可以解决问题。
ROUND(SUM(Detail.Qty * Products.Weight), 2) AS MovedWeight
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7809 次 |
最近记录: |