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! :)

War es hilfreich?

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
scroll top