我对SQL Server数据库有问题。我只想在ID
的值为null时更新它们,如果有一个值,则应跳过->不更新。
我不知道如何在SQL Server中实现这种“如果没有”的功能-有人可以给我提示吗?
谢谢。
这是我的伪代码:
UPDATE dbo.mytable
IF FIELD1 IS NOT NULL SKIP --Don't update
ELSE IF FIELD1 IS NULL
SET FIELD1 (SELECT DISTINCT FIELD1
FROM mytable
WHERE {Some ID} = '123'
AND FIELD1 IS NOT NULL)
WHERE {Some ID} = '123'
AND FIELD1 IS NULL
答案 0 :(得分:5)
UPDATE t
SET t.FIELD1 = ( SELECT DISTINCT TOP 1 FIELD1
FROM mytable t2
WHERE SomeID = '123'
AND FIELD1 IS NOT NULL )
FROM dbo.mytable t
WHERE FIELD1 IS NULL
AND SomeId = '123'
答案 1 :(得分:0)
我认为您想要这样的东西:
UPDATE dbo.mytable
SET FIELD1 = ?
WHERE FIELD1 IS NULL;
?
是您要为其设置值的占位符。
如果要将值设置为“ 123”值:
UPDATE dbo.mytable
SET FIELD1 = (SELECT t2.FIELD1 FROM dbo.mytable t2 WHERE t2.ID = 123)
WHERE FIELD1 IS NULL;
答案 2 :(得分:0)
您只需编写以下查询
UPDATE dbo.mytable
SET ID = 123
WHERE ID IS NULL
希望这会对您有所帮助。仅当ID字段中的值为NULL时,才会更新ID。
答案 3 :(得分:0)
UPDATE dbo.mytable
SET FIELD1 = (SELECT DISTINCT FIELD1
FROM mytable
WHERE {Some ID} = '123'
AND FIELD1 IS NOT NULL)
WHERE {Some ID} = '123'
AND FIELD1 IS NULL --here your IF condition will get filter [[IF FIELD1 IS NOT NULL SKIP --Don't update]]