Erstellen Sie eine berechnete Spalte auf einem DateTime-
-
22-07-2019 - |
Frage
Ich habe eine Nullable-Datetime-Spalte in meiner SQL Server 2005 Tabelle namens DateTimeDeleted.
Ich möchte eine BIT-Typ berechnete Spalte haben, die 1 ist, wenn DateTimeDeleted nicht null ist, sonst 0. Allerdings kann ich nicht richtig die Syntax für die Formel zu bekommen scheinen.
Ich habe versucht:
(TsDeleted IS NULL) = 0
aber es gibt mir einen Syntaxfehler.
Hilfe! :)
Lösung
Alter Table MyTableName
Add IsDeleted As
(Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End)
Dies wird ausgegeben als Integer ... Wenn Sie wirklich wollen, dass es ein wenig sein, dann:
Alter Table MyTableName
Add IsDeleted As
cast( (Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End) as Bit)
Andere Tipps
Ich denke, das sollte funktionieren:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
Dies funktioniert, im Grunde hat es eine Kluft von selbst, wenn es nicht null ist und dann teilt 0 von 1, wenn es NULL ist
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow