我可以在 IN 关闭中使用 NULL 吗?

Can I use NULL in a IN close?

如何将空字符串和 null 添加到括号中的值列表。我认为对于空值只是添加 '' 但对于空值,我不太确定。

UPDATE ProjectsActiveNotes
SET    NoteTypeID = 1
      ,NoteType = 'USER - CLIENT'
WHERE  NoteCategory = 'Client' AND
       NoteSubCategory IN
       (
        ''
        ,'Delivery'
        ,'Estimate'
        ,'Invoicing'
        ,'Placement'       
       )
GO

感谢帮助

你不能在IN中使用NULL,但你可以将它添加到WHERE子句中;

UPDATE ProjectsActiveNotes
SET    NoteTypeID = 1
      ,NoteType = 'USER - CLIENT'
WHERE  NoteCategory = 'Client' AND
       (NoteSubCategory IN
       (
        ''
        ,'Delivery'
        ,'Estimate'
        ,'Invoicing'
        ,'Placement'       
       ) or NoteSubCategory is null)
GO    

使用这个

UPDATE  ProjectsActiveNotes
SET     NoteTypeID = 1 ,
        NoteType = 'USER - CLIENT'
WHERE   NoteCategory = 'Client'
        AND COALESCE(NoteSubCategory, '') IN ( '', 'Delivery', 'Estimate',
                                               'Invoicing', 'Placement' )

另一种方法是使用 ISNULL :

UPDATE ProjectsActiveNotes
SET    NoteTypeID = 1
      ,NoteType = 'USER - CLIENT'
WHERE  NoteCategory = 'Client' AND
       ISNULL(NoteSubCategory,'') IN
       (
        ''
        ,'Delivery'
        ,'Estimate'
        ,'Invoicing'
        ,'Placement'       
       )
GO