2015-04-25 44 views
0

我認爲如果條件爲真或假,則IIf語句會返回一個值,但在Access中的此IIf語句返回字段及其值。如何在SQL Server中轉換或重寫Access IIF語句

IIf([A1]![KPr],[A1]![Kat],IIf([Data2]![Kat],[Data2]![Kat],[Data1]![Kat])), 

表左連接在FROM子句中 我試着體會到使用CASE WHENSQL Server這一說法,但它也接受一個真或假的條件。

我該如何理解和實現這種說法。

+0

IIF(條件,value_if_true,value_if_false)。在上述聲明中,他們如果第一個條件不滿足檢查一個條件。要轉換此到sql server檢查嵌套的情況下ñ –

回答

1

在VB,VBA和Access中的IIf函數與ps_prakash02在評論中寫的相同:iif(condition, value_if_true, value_if_false)。這意味着如果條件評估爲true,則返回value_if_true,否則返回value_if_false
因此,IIF到t-sql的翻譯僅僅是CASE WHEN condition THEN value_if_true ELSE _value_if_false END

我不太知道什麼[A1]![KPr]意味着訪問,我猜這是表A1或類似這樣的KPR列的值,所以我會離開他們,因爲他們是你的問題,只需更換IIFCASE在我的答案:

CASE WHEN [A1]![KPr] THEN [A1]![Kat] 
    ELSE 
     CASE WHEN [Data2]![Kat] THEN [Data2]![Kat] 
       ELSE [Data1]![Kat] 
     END 
END 

注:In SQL Server 2012 Microsoft included IIF in t-sql.