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不可为空列的表中,条件是是否DateCreated为空使用DateModified,如果两者均为空,则使用当前日期。

我无法使用

ISNull(DateCreated,DateModified)

因为两者都可以为空。

我该怎么做?该表大约有 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 回答