這是IIF格式的查詢。將IIF轉換爲CASE語句(THEN&ELSE語句中的錯誤)
SELECT [userinfo].[dp_url]
,[message_threads].[thread_id]
,[userinfo].[fname]
,[userinfo].[lname]
,[userinfo].[profile_id]
FROM [message_threads]
LEFT JOIN [userinfo] ON (IIF([message_threads].[from] <> 2, [userinfo].[profile_id] = [message_threads].[from], [userinfo].[profile_id] = [message_threads].[to]))
WHERE (IIF([message_threads].[from] <> 2, [to] = 2, [from] = 2))
ORDER BY [last_updated_on] DESC
這是我迄今爲止用CASE語句所做的。
SELECT [userinfo].[dp_url]
,[message_threads].[thread_id]
,[userinfo].[fname]
,[userinfo].[lname]
,[userinfo].[profile_id]
FROM [message_threads]
LEFT JOIN [userinfo] ON (
CASE
WHEN ([message_threads].[from] <> 2)
THEN ([userinfo].[profile_id] = [message_threads].[from])
ELSE ([userinfo].[profile_id] = [message_threads].[to])
END
)
WHERE (
CASE
WHEN ([message_threads].[from] <> 2)
THEN ([to] = 2)
ELSE ([from] = 2)
END
)
ORDER BY [last_updated_on] DESC
,我發現了以下錯誤:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '='.
這是非常必要使用等於(=)。
任何幫助表示讚賞!
看看這個:http://stackoverflow.com/questions/10256848/can-i-use-case-statement-in-a-join-condition。您的CASE需要返回1或0,然後比較結果變爲AND – GinjaNinja
括號中的內容是什麼? – HoneyBadger
@HoneyBadger我是「CASE」語句的新手。我認爲這就是你壓縮條件的方式。 –