添加默认值为 0.0 的列

Posted

技术标签:

【中文标题】添加默认值为 0.0 的列【英文标题】:Add column with default value 0.0 【发布时间】:2016-02-09 11:24:19 【问题描述】:

我在 sql server 中有一个表,但我想添加一个充满零的额外列 我这样做:

DECLARE @var numeric(10,1) set @var = 0.0
 SELECT tmp.a,
        tmp.b,
        @var
 INTO #tmp2
 from #tmp1 as tmp

当我 select * from #tmp2 列得到 0 但我想要 0.0

【问题讨论】:

00.0 是同一个数字。由表示层决定如何显示它。但至少在 SSMS 中,鉴于您的numeric(10,1) 类型,您应该已经获得0.0。在 SSMS 之外,谁知道您可能会使用什么来显示值?没有足够的信息来回答这个问题。 我在 sql server studio management sqlserver 2008 中尝试了相同的操作并获得了 0.0.不过不得不命名@var。也许这是你的问题 【参考方案1】:

您需要为列命名,这将按预期工作,使列 C 的值为 0.0:

CREATE TABLE #temp1(a int, b int)
INSERT #temp1 values(1,1),(2,2)

DECLARE @var numeric(10,1) set @var = 0.0
 SELECT a,
        b,
        @var c
 INTO #tmp2
 FROM #temp1

 SELECT * from #tmp2

结果:

a  b  c
1  1  0.0
2  2  0.0

【讨论】:

【参考方案2】:

首先,您的 SQL 不正确,您需要在 SELECT 列表中为 @var 提供列名。其次,我无法重现这个问题。我使用的是 SQL Server 2014,它从 #tmp2 返回 0.0 而不是 0。

【讨论】:

以上是关于添加默认值为 0.0 的列的主要内容,如果未能解决你的问题,请参考以下文章

MariaDB - 使用“AS”创建的列的默认值为 1024 [重复]

oracle的主键要设置默认值为自动递增,怎么处理?

基础回顾之集合框架

如果请求值为空,Laravel 设置默认值

Java入门:数组

java成员变量怎么默认初始化