Créer une colonne calculée sur un datetime
-
22-07-2019 - |
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! :)
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