SQL 中小数列的占位符



我是SQL的新手,所以这个问题可能很简单,很容易回答。

我正在创建一个临时表,我希望稍后用十进制值填充空白列。

我可以在 SELECT 语句中用作占位符来指示我希望十进制值填充列吗?

对于我将用整数值填充的列,我使用以下代码:

SELECT 0 AS ColumnName

我不相信这适用于我想要用十进制值填充的列,因为我相信 0 表示整数值。有什么东西可以代替 0 吗?

任何帮助将不胜感激!

当SQL知道没有数据丢失的风险时,它将执行某些类型的隐式转换。在您的情况下,int 可以安全地转换为十进制,因为无法损坏您的数据。就SQL而言,0是0.0。

反之则不然,因为从十进制转换为 int 会丢失小数部分。因此,SQL不会隐式地投射相反的结果。

您的查询按原样很好。

在浮点字段中使用 0 不会导致记录截断,因为它包含的精度低于浮点数,因此这样做是安全的,并暗示 0.0

您还可以在表声明中将字段默认为 0.0,以便在更新之前它将为 0.0。但不是必需的。

例如:CREATE TABLE table ( col1 FLOAT(size,d) DEFAULT 0.0 )

最新更新