我是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 )