4

表 A:

Id  Name  DateCreated  DateModified
-----------------------------------
1    A     2013-1-12    2013-1-15
2    B     NULL         2013-2-1
3    C     NULL          NULL

このテーブルのデータをDateCreated、null 不可の列である別のテーブルに移行する必要があります。条件は、null の場合DateCreatedは使用DateModifiedし、両方が null の場合は現在の日付を使用します。

使えない

ISNull(DateCreated,DateModified)

どちらも null になる可能性があるためです。

どうすればいいのですか?テーブルには約 10000 行あります。

4

3 に答える 3

8

使用できますCOALESCE(DateCreated, DateModified, GETDATE())

于 2013-02-25T13:00:37.087 に答える
3

ネストされたIsnull

Isnull(DateCreated,isnull(DateModified, getdate()))

またはCASE

case when DateCreated is null and DateModified is null then getdate()
     when DateCreated is null then DateModified 
     else DateCreated end
于 2013-02-25T13:05:06.043 に答える
-2

あなたが探しているのはこのようなものですか?

$result = mysql_query($query, $link);

if ($result) {
  while($row = mysql_fetch_array($result)) {

    if ($row['DateCreated'] == 'NULL'){

        if ($row['DateModified'] == 'NULL'){

                $today = date("Y-m-d");
                $id = $row['id'];
                $query = sprintf("SET DateCreated = $today WHERE id = $id");

            } else {
                $newDate = $row['DateModified'];
                $id = $row['id'];
                $query = sprintf("SET DateCreated = $newDate WHERE id = $id");}
        }
  }

}
else {
  echo mysql_error();
}
于 2013-02-25T13:19:47.860 に答える