[英]SQL SERVER 2005 IF ELSE
I am running following query. 我正在运行以下查询。
SELECT T1.C1, T2.C2...,
IF( T1.C1<>T2.C1,"Changed","1") AS NewColumn
From T1 INNER JOIN T2
Where condition..
I am getting syntax error for IF statement. 我收到IF语句的语法错误。
Motive is to compare columns from two different tables, if not equal save as "Changed" in NewColumn of third table.. This is a Insert INTO query
. 动机是比较两个不同表中的列,如果不相等,则在第三个表的NewColumn中保存为“已更改”。这是一个Insert INTO query
。
T-> Table
C->Column
You have to use CASE WHEN in this context. 在这种情况下,您必须使用CASE WHEN。
SELECT T1.C1,
T2.C2...,
CASE WHEN T1.C1<>T2.C1 THEN 'Changed' ELSE '1' END AS NewColumn
FROM T1
INNER JOIN T2
WHERE condition
SELECT T1.C1, T2.C2...,
CASE WHEN T1.C1<>T2.C1 THEN 'Changed' ELSE '1' END AS NewColumn
From T1 INNER JOIN T2 ON ...
Where ...
Others have already mentioned that you should use CASE WHEN ELSE END. 其他人已经提到你应该使用CASE WHEN ELSE END。 The difference between the two is that IF changes the flow of execution of your code - you can conditionally execute code depending on the result of your IF statement. 两者之间的区别在于IF改变了代码的执行流程 - 您可以根据IF语句的结果有条件地执行代码。 CASE doesn't change the execution flow - it simply lets you check a value, and then get a different result depending on the result. CASE不会更改执行流程 - 它只是让您检查一个值,然后根据结果获得不同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.