簡體   English   中英

SQL SERVER 2005如果是的話

[英]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不會更改執行流程 - 它只是讓您檢查一個值,然后根據結果獲得不同的結果。

如果要在語句中使用條件檢查,則應使用CASE WHEN

MSDN

但是如果你有多行語句,你可以使用IF ELSE子句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM