Crea una colonna calcolata in un datetime
-
22-07-2019 - |
Domanda
Ho una colonna DateTime nullable nella mia tabella di SQL Server 2005 denominata DateTimeDeleted.
Vorrei avere una colonna calcolata di tipo BIT che è 1 se DateTimeDeleted non è null, altrimenti 0. Tuttavia, non riesco a ottenere la sintassi per la formula corretta.
Ho provato:
(TsDeleted IS NULL) = 0
ma mi dà un errore di sintassi.
Aiuto! :)
Soluzione
Alter Table MyTableName
Add IsDeleted As
(Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End)
Questo verrà visualizzato come un numero intero ... Se vuoi davvero che sia un po ', allora:
Alter Table MyTableName
Add IsDeleted As
cast( (Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End) as Bit)
Altri suggerimenti
Penso che dovrebbe funzionare:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
Funzionerà, fondamentalmente fa una divisione da sola se non è nulla e poi divide 0 per 1 se è NULL
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow