2

SQL Server 2005 テーブルに、DateTimeDeleted という NULL 値を許容する DateTime 列があります。

DateTimeDeleted が null でない場合は 1、それ以外の場合は 0 の BIT 型の計算列が必要です。ただし、式の構文が正しくないようです。

私はもう試した:

(TsDeleted IS NULL) = 0

しかし、構文エラーが発生します。

ヘルプ!:)

4

3 に答える 3

12
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)
于 2009-01-14T05:09:04.157 に答える
2

私はこれがうまくいくと思います:

update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
于 2009-01-14T04:10:51.747 に答える
-1

これは機能します。基本的に、null でない場合はそれ自体で除算を行い、NULL の場合は 0 を 1 で除算します。

CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
于 2009-01-14T05:25:07.590 に答える