插入所有行等于null的数据

时间:2016-06-30 12:06:37

标签: sql

有没有办法插入所有行等于null的数据?我知道它看起来像

select login from Users
where login is null

什么时候回来

1. null
2. null
3. null

依旧......

如何将数据填充到所有这些空行?

3 个答案:

答案 0 :(得分:3)

要只更新一列中的空值,请执行此操作;

UPDATE TableName
SET FieldName = ISNULL(FieldName,'NewValue')

如果要在ALL为NULL时更新所有列,则可以执行类似

的操作
UPDATE TableName
SET 
     Field1 = 'Value1'
    ,Field2 = 'Value2'
    ,Field3 = 'Value3'
WHERE
    Field1 IS NULL 
    AND Field2 IS NULL
    AND Field3 IS NULL

如果要替换表中的所有NULL值而不管整行是否为NULL,那么你可以这样做;

UPDATE TableName
SET
     Field1 = ISNULL(Field1,'Value1')
    ,Field2 = ISNULL(Field2,'Value2')
    ,Field3 = ISNULL(Field3,'Value3')

如果要将值更新为每行的不同值,则需要一种将用户链接到其登录的方法。基本版本就是这样(我将其称为LookupTable)

ID  Login
1   User1
2   User2
3   User3

您的查询将是这样的;

UPDATE a
SET a.login = ISNULL(a.login,b.login)
FROM TableName a
JOIN LookupTable b
    ON a.id = b.id

这只会使用NULL更新值,但您可能只想set a.login = b.login确保所有数据都正确无误。

答案 1 :(得分:1)

UPDATE Users 
SET login = 'value'
WHERE login is NULL

如果当前值为NULL,这将使用值'值'更新登录列。

答案 2 :(得分:0)

假设表中的所有列都可以采用NULL值并且没有默认值,您可以通过执行以下操作将一行添加到包含所有NULL值的表中:

insert into t(col)
    select NULL;

insert应该至少有一个列;任何专栏都可以。