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