2014-03-07 101 views
2

在我添加案例陳述之前,我沒有收到錯誤。我需要添加case語句來提供家庭電話號碼作爲備份,如果H1或H2手機字段爲空或空白(作爲新手,我知道該怎麼做的最佳方式)。出於某種原因,我在查詢表達式中收到語法錯誤(缺少運算符)。它注意到兩個案例陳述的錯誤。據我所知,他們寫的是正確的......任何人都知道發生了什麼事?謝謝。訪問2013年:爲什麼我得到這個語法錯誤?

SELECT [H1 Last Name] & ", " & [H1 First Name] as [Full Name],[H1 E-Mail] 
CASE 
    WHEN [H1 Cell Phone] IS NULL 
    THEN [Home Phone] 
    ELSE [H1 Cell Phone] END as [Phone] 

FROM NameLookup 
WHERE (((NameLookup.[H1 Last Name]) NOT LIKE '%SPEC%') OR ((NameLookup.[H1 Last Name]) NOT LIKE '%MODEL%')) AND ((NameLookup.[H1 Last Name]) IS NOT NULL) 

UNION 

SELECT [H2 Last Name] & ", " & [H2 First Name] as [Full Name],[H2 E-Mail] 
CASE 
    WHEN [H2 Cell Phone] IS NULL 
    THEN [Home Phone] 
    ELSE [H2 Cell Phone] END as [Phone] 

FROM NameLookup 
WHERE (((NameLookup.[H1 Last Name]) NOT LIKE '%SPEC%') OR ((NameLookup.[H1 Last Name]) NOT LIKE '%MODEL%')) AND ((NameLookup.[H1 Last Name]) IS NOT NULL) 


Order By 1; 
+1

你之後錯過了一個逗號'[H1電子郵件]' –

+0

我認爲,一個可能的錯誤是使用ORDER BY的 –

回答

2

您是否在MS Access ACE中使用它?案例是不可用,使用IIF(argument, true value, false value)

SELECT [H1 Last Name] & ", " & [H1 First Name] as [Full Name],[H1 E-Mail], 
IIF ([H1 Cell Phone] IS NULL, [Home Phone], [H1 Cell Phone]) AS Phone 
FROM NameLookup 

訪問SQL函數:http://www.techonthenet.com/access/functions/

+0

這有點工作對我來說,我相信你是對的,無論如何,CASE在這裏都不適合我。是的,我在Access中使用它(我更熟悉SQL Server,雖然只是足夠危險)。謝謝。 我仍然存在的問題是,當工會發生時,所有未使用的家庭電話號碼,因爲手機不爲空,顯示空白全名(只有一串逗號在全名列,沒有電子郵件,然後是所有未使用的家庭電話號碼)。 – Bryce

+0

當前代碼在這裏:[Pastebin.com](http://pastebin.com/MKFKE22p) – Bryce

+0

我不知道你爲什麼有一個聯合,這兩個語句有什麼區別? – Fionnuala