如何摆脱SQL Server 2008表中的NULL值

cMi*_*nor 2 sql sql-server null sql-server-2008

我有一张桌子:

1   0.22    0.14    0.05
23  11      0.32    0.16
4   NULL    1       0.39
NULL NULL   .8      1
NULL .5     .7      NULL 
Run Code Online (Sandbox Code Playgroud)

我想修改表成为

1   0.22  0.14  0.05
23   1    0.32  0.16
4   -1      1   0.39
-1  -1     .8     1
-1  .5     .7    -1
Run Code Online (Sandbox Code Playgroud)

如果你看我改变了NULL-1

我在努力:

SELECT
  coalesce([a1], -1), coalesce([a2], -1),coalesce([a3], -1), coalesce([a4], -1)
FROM tableee;
Run Code Online (Sandbox Code Playgroud)

哪个是正确的,但是当我做一个时,SELECT *我得到了null价值表...

如何修改表格,以便在我做的时候,我不SELECT *会这样做NULL而是-1相反?

Abe*_*ler 7

如果要更改表中的值,则需要更新表:

UPDATE Tableeee t
SET t.a1 = COALESCE(t.a1,-1),
    t.a2 = COALESCE(t.a2,-1),
    t.a3 = COALESCE(t.a3,-1)
    t.a4 = COALESCE(t.a4,-1)
Run Code Online (Sandbox Code Playgroud)

或者,您可以将列更改为不可为空,并提供默认值-1.如果您有这个要求,您可能希望这样做.更新数据只是一个绷带,您需要在数据库中强制执行此要求.