2011-11-11 92 views
-2

我在使用Javascript構建Sql查詢時遇到問題。我在我的Sql查詢中使用了case語句。如何在Javascript中構建Sql查詢

以下是查詢結果使用, 它是用.aspx頁面中的Javascript函數編寫的。 而我在裏面使用了Sql case語句。

sqlInit1 = 'SELECT Distinct A.CR_LAST_UPDATE, Case When b.ca_vote = 'Approve' and b.ca_title='RSM' Then b.ca_email When b.ca_vote = 'Reject' Then '' When b.ca_vote = 'Pending' Then '' When b.ca_vote = 'IN PROCESS' Then '' End as CA_EMAIL FROM CREDIT A INNER JOIN CREDIT_APPROVALS B ON A.CR_ID = B.C_ID WHERE '; 

每當我打開網頁時,它都會報錯。 請讓我如何格式化。所以它會給出一個好的結果。

+0

你的查詢只是以'WHERE'這個詞結尾,這肯定看起來不正確。但是你有什麼錯誤? –

+2

如果你部署了這個,在擁有你的數據庫服務器之前,只是一個時間問題。 :(sql和客戶端javascript不應該混合使用 –

+0

@MartinSmith:假設他會在腳本中的某些位置繼續添加子句,這不公平嗎?無論如何,問題不是如何編寫sql,而是 – Mithon

回答

2

您在ca_vote結束查詢字符串。爲避免這種情況,請在查詢字符串中使用雙引號,並在sql中使用內部字符串的單引號。就像這樣:

sqlInit1 = "SELECT Distinct A.CR_LAST_UPDATE, Case When b.ca_vote = 'Approve' and b.ca_title='RSM' Then b.ca_email When b.ca_vote = 'Reject' Then '' When b.ca_vote = 'Pending' Then '' When b.ca_vote = 'IN PROCESS' Then '' End as CA_EMAIL FROM CREDIT A INNER JOIN CREDIT_APPROVALS B ON A.CR_ID = B.C_ID WHERE "; 

我還沒有要問,爲什麼要放置SQL在你的JavaScript .. :)

編輯:好。所以,現在你已經可以工作了,但是在使用sql語法時遇到了問題,下面是T-SQL中的Case statement的參考(用於Microsoft SQL Server的SQL方言)。向您展示規格和衆多示例。

+1

不,我認爲我們*確實*需要問爲什麼OP將SQL放入Javascript中... –

+0

@KirkWoll嗯,這是一個非常明顯的暗示,OP應該考慮他在做什麼,如果他沒有采取暗示,這是一個失敗的原因,我會辭職,只是試圖幫助他做任何基本的javascripting 。記住,每個人都從某個地方開始,他們很可能會找出爲什麼這是一個壞主意。希望把這個在一些客戶網站之前.. :) – Mithon

+0

我知道。我的評論不是針對你,而是針對OP和SO。 :) –