سؤال
وكيف يمكن أن نكتب عبارة SQL التحديث الذي سوف تقوم بتحديث السجلات و"مجموعة" قيمة يتغير في كل مرة؟
وعلى سبيل المثال: اذا كان لدينا سجلات مثل هذا
SomeNumber SomeV CurCode WhatCodeShouldBe
200802754 432 B08 B09
200802754 432 B08 B09
200802754 432 B08 B09
200808388 714 64B C00
200804119 270 64B C00
وأود أن تحديث كل سجل 'SomeNumber "بحيث" CurCode "سيكون نفس" WhatCodeShouldBe'
وشكرا على اي مساعدة!
المحلول
update a
set
3rdColumn = b.2ndColumn
from
tableA a
inner join tableB b
on a.linkToB = b.linkToA
ويستند هذا على تعليقات الجديدة
نصائح أخرى
وUPDATE yourtable SET CurCode = WhatCodeShouldBe
UPDATE tableName SET CurCode = WhatCodeShouldBe
وعلى افتراض أن يتم تخزين القانون الجديد في عمود آخر، أي WhatCodeShouldBe
، في المثال أعلاه، ثم بيان تبدو شيئا مثل:
UPDATE table SET CurCode = WhatCodeShouldBe
وأمازيغ في أسماء الأعمدة الفعلية. هذا يقول أساسا DBMS، "لكل صف، عمود تعيين رمز إلى ما كانت القيمة في هذا العمود الآخر، لكل صف".
ولقد حصلت على هذه البيانات من خلال تشكيل بعض temptables وجمع المعلومات من جداول مختلفة. :( تحديث هذا الجدول المؤقت لن يكون عونا ... ولست بحاجة إلى أن تكون قادرة على تحمل التغيرات على مر إلى الجدول الأصلي. سأحاول أن تعطي أفضل مثال ...
والجدول A: 200802754 432 B08 200802754 432 B08 200802754 432 B08 200808388 714 64B 200804119 270 64B
والجدول B 432 B09 432 B09 432 B09 714 C00
وهكذا أريد أن تكون القرارات العمود 3RD من الجدول ألف نفس العمود الثاني من الجدول B ... الانضمام إلى الجداول على عمود 2. 200804119 270 64B C00