Question

J'ai dans ma table SQL Server 2005 une colonne DateTime nullable appelée DateTimeDeleted.

J'aimerais avoir une colonne calculée de type BIT qui vaut 1 si DateTimeDeleted n'est pas null, sinon 0. Cependant, la syntaxe de la formule ne semble pas correcte.

j'ai essayé:

(TsDeleted IS NULL) = 0

mais cela me donne une erreur de syntaxe.

Aide! :)

Était-ce utile?

La solution

Alter Table MyTableName 
  Add IsDeleted As 
     (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End)

Cela affichera un entier ... Si vous voulez vraiment que ce soit un peu, alors:

Alter Table MyTableName 
  Add IsDeleted As 
     cast( (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End) as Bit)

Autres conseils

Je pense que cela devrait fonctionner:

update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end

Cela fonctionnera. Fondamentalement, il divise lui-même s'il n'est pas nul, puis divise 0 par 1 s'il est NULL

CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top