[英]SQL SERVER 2005 IF ELSE
我正在運行以下查詢。
SELECT T1.C1, T2.C2...,
IF( T1.C1<>T2.C1,"Changed","1") AS NewColumn
From T1 INNER JOIN T2
Where condition..
我收到IF語句的語法錯誤。
動機是比較兩個不同表中的列,如果不相等,則在第三個表的NewColumn中保存為“已更改”。這是一個Insert INTO query
。
T-> Table
C->Column
在這種情況下,您必須使用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 ...
其他人已經提到你應該使用CASE WHEN ELSE END。 兩者之間的區別在於IF改變了代碼的執行流程 - 您可以根據IF語句的結果有條件地執行代碼。 CASE不會更改執行流程 - 它只是讓您檢查一個值,然后根據結果獲得不同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.