【问题标题】:Add column with default value 0.0添加默认值为 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。也许这是你的问题

标签: sql sql-server tsql default


【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      相关资源
      最近更新 更多