使用空值更新SQL中的列

时间:2017-09-01 16:34:22

标签: sql sql-update

如果我需要在列中替换set timeout -1 中的所有提及,我会使用以下概念吗?这看起来很简单,但我找到的所有教程对于上周学习SQL的人来说都不够英语。

"TOTA"

2 个答案:

答案 0 :(得分:1)

您应该设置为null以指定空白值

Update Tablename 
 set indcode = NULL
 where indcode ='TOTA';

并使用where来过滤要更新的行

如果您需要一组过滤值,可以使用IN子句,例如

 Update Tablename 
 set indcode = NULL
 where indcode in ('TOTA', '0', '000000');

或者对于复杂的情况,你可以在......时使用案例。

 Update Tablename 
 set indcode = case when 'TOTA' then NULL 
                    when '0' then '000000'
                    else indcode 
                    END

答案 1 :(得分:1)

你错过了一个等号和一个右括号,并且如你所写,你将它更新为字符串空白,而不是空字符串,最后,你需要决定是否要将它更新为空(零长度)字符串,或称为null的内置数据库值,它在所有关系数据库中表示该值未知或未指定(与显式为空或零长度字符串相反。)< / p>

要更新为空(零长度)字符串,请写入'

    Update Tablename 
      set indcode = case when indcode = 'TOTA' then '' 
                         else indcode end;

但你真的不需要更新那些单独的,所以只需添加一个过滤器(一个Where子句)与该谓词表达式

    Update Tablename 
      set indcode = ''
    Where indcode = 'TOTA' 

如果你真的想要将它更新为Null而不是空字符串,那么首先检查并确保将indCode列设置为允许空值,然后写:

    Update Tablename 
      set indcode = Null
    Where indcode = 'TOTA'