最近在學用asp來建立討論區,市面上很多教學書都是用Access來建立資料庫
可是我是想利用MS-SQL 2000來建立資料庫,可是卻發現了瓶頸..希望有高手可以幫忙。
市面的教學書是利用Access建立兩個資料表,分別為bbspost(用來儲存發佈的討論主題資料和repost(用來儲存回應留言的資料),以及一個查詢物件(用來統計回應條數和最後回應時間,將兩個不同的資料表以一個相同欄位關聯起來,並放在同一個資料表中顯示)
問題在於Access查詢物件中有一個欄位是利用運算式取得該主題留言最新的更新時間,Access運算式為:post_reNewTime: Max(IIf(repost!re_time Is Not Null,repost!re_time,post!post_time)),請問該如何將這個Access查詢物件的欄位轉去Ms-SQL 2000的檢視表中?因為Access的函數寫法與SQL語法不合,我直接將語法套進去Ms-SQL時一直出現語法錯誤,那請問該欄位的語法轉去Ms-SQL 2000的檢視表中該怎麼設定此欄位呢?或者該怎麼寫這個語法,希望有高手可以幫我解惑。
2006-08-24 23:52:23 · 1 個解答 · 發問者 輕拂 1 in 電腦與網際網路 ➔ 軟體
您的IIF代換以及判斷null的需求,只需要用ISNULL function就可以了。
因此,您的 Max(IIf(repost!re_time Is Not Null,repost!re_time,post!post_time)) 改為
MAX(ISNULL(repost.re_time , repost.post_time))
詳細說明如下,供您參考:
ISNULL
以指定的取代值來取代 NULL。
語法
ISNULL ( check_expression , replacement_value )
引數
check_expression
是要檢查 NULL 的運算式,而 check_expression 可以是任何型別。
replacement_value
如果 check_expression 為 NULL 時,所傳回的運算式,replacement_value 必須有與 check_expresssion 相同的型別。
傳回型別
傳回與 check_expression 相同的型別。
備註
如果不是 NULL 的話,會傳回 check_expression 的值,否則會傳回 replacement_value。
2006-08-26 03:36:22 · answer #1 · answered by 小寫的cc 5 · 0⤊ 0⤋