-1

現在、一部のレコードに値がない特定のフィールドがデータ セットにあります。このフィールドは、スキーマで NULL にすることができます。

ただし、場合によっては、このデータが ID に基づいてデータベース内の他のレコードに取り込まれます。

データベースの残りの内容に基づいて、これらの NULL フィールドを適切な値で更新するクエリを実行したいと考えています。これらのフィールドの値が競合することは決してないと想定してください。

例えば:

ID      Identifier          Address                    Name            OrderID
123                         23 Sheppard Court          David           465464322
456     100100100100        29 Milestone Cres          Terry           651654986
789     200200200200        102 Dynamo Drive           Joseph          397431357
123     300300300300        23 Sheppard Court          David           516198532

上記の例のレコードは一意ですが、最初の行の識別子フィールドは入力されていません。

この不足しているフィールドを正しい値 (この場合は 300300300300) ですばやく更新できるクエリを実行したいと考えています。

4

2 に答える 2

0

不足しているすべての識別子を更新します。

UPDATE yourTable t1
SET t1.Identifier = 
(SELECT TOP 1 Identifier FROM yourTable 
WHERE t1.Identifier IS NOT NULL)
WHERE t1.Identifier IS NULL

補足: こんなに 乱雑なデータがあるのはどうしてですか? 通常、データベースでこのような更新を起動する必要はありません。

また、テーブルに主キーがありますか? 私はそれを見ることができないので、ほとんどすべてのテーブルでそれが本当に必要です.

于 2013-07-08T19:18:38.407 に答える