質問

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))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top