Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中十进制列的占位符_Sql_Sql Server_Decimal - Fatal编程技术网

SQL中十进制列的占位符

SQL中十进制列的占位符,sql,sql-server,decimal,Sql,Sql Server,Decimal,我是SQL新手,所以这个问题很容易回答 我正在创建一个临时表,希望稍后在其中的空白列中填入十进制值 我是否可以在SELECT语句中用作占位符,以指示我希望十进制值填充该列 对于将用整数值填充的列,我使用以下代码: SELECT 0 AS ColumnName 我不认为这对我想要用十进制值填充的列有效,因为我认为0表示整数值。有什么可以代替0的吗 任何帮助都将不胜感激 当SQL知道没有数据丢失风险时,它将执行某些类型的操作。在您的情况下,int可以安全地转换为十进制,因为无法损坏数据。就SQL而

我是SQL新手,所以这个问题很容易回答

我正在创建一个临时表,希望稍后在其中的空白列中填入十进制值

我是否可以在SELECT语句中用作占位符,以指示我希望十进制值填充该列

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

SELECT 0 AS ColumnName
我不认为这对我想要用十进制值填充的列有效,因为我认为0表示整数值。有什么可以代替0的吗

任何帮助都将不胜感激

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

反之亦然,因为从十进制转换为int将丢失小数部分。因此,SQL不会隐式地强制转换相反的内容

您的查询保持原样。

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

反之亦然,因为从十进制转换为int将丢失小数部分。因此,SQL不会隐式地强制转换相反的内容


您的查询保持原样。

在浮点字段中使用0不会导致记录被截断,因为它的精度比浮点低,所以这样做是安全的,并且意味着0.0

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

例如:
创建表

(col1 FLOAT(size,d)默认值为0.0)

在FLOAT字段中使用0不会导致对记录进行截断,因为它包含的精度低于FLOAT,因此这样做是安全的,并且表示为0.0

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

例如:
创建表

(col1 FLOAT(size,d)默认值为0.0)

您使用的是什么DBMS(MySQL、Oracle等)?
选择0.0作为十进制列
选择CAST(0作为十进制(18,9))作为十进制列或
选择0.0作为十进制列
我使用的是Microsoft SSMS@Error\u 2646什么DBMS(MySQL、Oracle等)您是否正在使用?
选择0.0作为十进制列
选择强制转换(0作为十进制(18,9))作为十进制列或
选择0.0作为十进制列
我正在使用Microsoft SSMS@Error\u 2646