我最近看到了很多使用100.而不是100的查询.例如,CAST(100. * foo) AS NUMERIC(5,2).

但是100.到底是什么呢?这显然是某种语法上的糖,大概是为了"100. the Double,而不是100. the int",但我在任何地方都找不到它的文档,所以我不能确定.

推荐答案

使用100.(或100.0)用于防止整数数学运算.

在t-SQL中,每种数据类型都有一个小数大于整数的order of precedence.通过在表达式的任何部分将文字值指定为小数,计算将隐含地作为小数执行.

select 100  / 6 /* = 16 */
select 100. / 6 /* = 16.666666 */

Sql相关问答推荐

Oracle SQL对列进行汇总并在列表底部显示总计

用于动态查询情况的存储过程常识模式

snowflake/SQL嵌套的JSON对象和数组

返回UPSERT中的旧行值

使用多个嵌套数组查询JSON数据

如何使用SQL Server中的Nodes()方法执行与OPENXML相同的操作

HAVING子句内部过滤的正确方法

更正用于判断错误组合的SQL

Haystack针相交-在元素最多的Haystack中查找集合

同时插入和更新记录

如何创建snowflake表(动态查找数据类型)并从阶段加载(AWS S3)?

如何在 golang squirrel lib 中添加 postgreSQL 的distinct on

Postgres存在限制问题「小值」

一次 Select 语句中按组累计的SQL累计数

SQL:无重复项的两个聚合函数

基于字符串的SQL查询

BigQuery Pivot 遗漏行

如何在 RavenDB Studio (RQL) 中插入更新文档

Postgres 条件求和函数

为什么这是 AND,OR with NULL 的真值表?