比较两个SQL Server表中的值然后更新

时间:2017-09-26 13:14:31

标签: sql sql-server

我有2个数据库表,我想根据公共列之间的匹配更新第一个表。这是我的代码:

solution = sp.dsolve(equation)
display(solution)

我的代码似乎没有给我预期的结果,有人能告诉我是否有更好的方法来实现我想要实现的目标?

2 个答案:

答案 0 :(得分:2)

您可以使用公用表,然后更新。更新匹配列后,您可以按byte[] byteImage; if (pictureBox1.Image == null || name.Text == string.Empty) { byteImage = new byte[0]; MessageBox.Show("قم بالتاكد من ادخال كل البيانات اولاً واختيار الصورة ", "عملية الاضافة", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MemoryStream ms = new MemoryStream(); pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat); byteImage = ms.ToArray(); MessageBox.Show("تمت عملية الاضافة ", "عملية الاضافة", MessageBoxButtons.OK, MessageBoxIcon.Information); }

更新其余不匹配的列
Update ... Where IS NULL

答案 1 :(得分:0)

我认为你可以像这样写一个简单的UPDATE(不需要使用CTE)。在这种格式中,您可以注释UPDATE行并使用SELECT查看测试结果:

UPDATE A SET InReleasenotes = CASE WHEN B.functionname IS NULL THEN 'N' ELSE 'Y' END
/* SELECT * */
FROM TestingTool_WeeklyReports A
LEFT JOIN  TestDS_DSReleaseNotes B ON A.Datasourcename = B.functionname;

示例数据:

CREATE TABLE TestingTool_WeeklyReports (Datasourcename VARCHAR(20), InReleasenotes VARCHAR(1))
INSERT INTO TestingTool_WeeklyReports VALUES ('AAA',NULL)
INSERT INTO TestingTool_WeeklyReports VALUES ('BBB',NULL)
CREATE TABLE  TestDS_DSReleaseNotes (functionname VARCHAR(20))
INSERT INTO TestDS_DSReleaseNotes VALUES ('AAA');

更新后的输出:

Datasourcename  InReleasenotes
AAA             Y
BBB             N
相关问题