Sql If-then和column.Value

Sql If-then和column.Value,sql,sql-server,Sql,Sql Server,我需要实现这个小逻辑,让我知道我做得对吗 If ( Table1.ColA = 2 and Table2.colB = 4) Then Table1.ColC = 5 我如何实现像这样的东西是SQL?根据您的评论,假设它都在一个表中,那么 UPDATE Table1 SET ColC = 5 WHERE ColA = 2 AND ColB = 4 这只会在该条件为真的情况下更新行-它不会影响任何其他行。在SQL Server(和Oracle中,但可能不是MySQL中)

我需要实现这个小逻辑,让我知道我做得对吗

If ( Table1.ColA = 2 and Table2.colB = 4)

    Then Table1.ColC = 5

我如何实现像这样的东西是SQL?

根据您的评论,假设它都在一个表中,那么

UPDATE Table1
   SET ColC = 5
   WHERE ColA = 2 AND ColB = 4
这只会在该条件为真的情况下更新行-它不会影响任何其他行。

在SQL Server(和Oracle中,但可能不是MySQL中)


如果在
表1
表2
之间存在某种类型的关系,则可以执行以下操作:

UPDATE t1
SET ColC = 5
FROM Table1 t1
JOIN Table2 t2 ON t2.Table1ID = t1.ID
WHERE
    t1.ColA = 2
    AND t2.ColB = 4

Sql server和MySql是两种截然不同的数据库。你两个都有。您真正使用的是哪一个?您希望在哪里实现它?当您插入行时?您是否正在更新第三个表
table
,或者
ColC
Table1
Table2
上,只是没有指定?我正在使用SQL SERVER如果您要更新SQL SERVER上的列,是否可以使用CASE语句根据原始问题,它们不都在同一个表中
ColA
表1
ColB
表2中
ColC
表中
中。对,但他们在问题的评论中对其进行了修改,使其听起来(我不太愿意使用“澄清”一词)好像所有三列都在同一个表中。嗯……我在SQL文档中没有看到解码函数。你能告诉我它在哪里吗?
UPDATE t1
SET ColC = 5
FROM Table1 t1
JOIN Table2 t2 ON t2.Table1ID = t1.ID
WHERE
    t1.ColA = 2
    AND t2.ColB = 4