日時に計算列を作成する
-
22-07-2019 - |
質問
DateTimeDeletedと呼ばれるSQL Server 2005のテーブルにNULL入力可能なDateTime列があります。
DateTimeDeletedがnullでない場合は1、それ以外の場合は0であるBIT型の計算列が必要です。ただし、式の構文が正しいとは思えません。
試しました:
(TsDeleted IS NULL) = 0
ただし、構文エラーが発生します。
ヘルプ! :)
解決
Alter Table MyTableName
Add IsDeleted As
(Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End)
これは整数として出力されます...ちょっとしたい場合は:
Alter Table MyTableName
Add IsDeleted As
cast( (Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End) as Bit)
他のヒント
これはうまくいくと思う:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
これは機能します。基本的に、nullでない場合はそれ自体で除算を行い、nullの場合は0を1で除算します
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
所属していません StackOverflow