TSQL用数据替换空字段

时间:2015-11-06 18:51:40

标签: sql sql-server tsql

我的表格有这样的布局

1 2 3 4 5

1 1 1 1 

2 2 2 2 

第二行和第三行中的最后一列已留空。它们应该包含一个字符串。所以我写了这个SQL插入表

INSERT INTO MyTable (5) VALUES ('This is the string');

但是这给我留下了

1 2 3 4 5

1 1 1 1 

2 2 2 2 

NULL NULL NULL NULL This is the string

这显然不是我的意图。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您需要使用UPDATE来更改现有行:

CREATE TABLE #tab([1] INT, [2] INT, [3] INT , [4] INT, [5] VARCHAR(100));

INSERT INTO #tab([1],[2],[3],[4]) VALUES (1, 1, 1, 1),(2 ,2, 2, 2);

UPDATE #tab
SET [5] = 'This is the string'
WHERE [5] = '' OR [5] IS NULL;

SELECT *
FROM #tab;

LiveDemo

答案 1 :(得分:1)

给它一个旋转...

UPDATE MyTable
SET 5 = 'This is a string'
WHERE COALESCE(5, '') = ''   -- only update where 5 is currently NULL or blank, i.e. ''

INSERT - 向表中添加新行

更新 - 更改表格中现有行的值