SQL語法問題 急!!請幫忙 |
答題得分者是:tech_state
|
TIY~2
一般會員 發表:26 回覆:37 積分:22 註冊:2003-08-07 發送簡訊給我 |
AnsiString buffer_BCR;
buffer_BCR="updata groups set groups.test='501' where groups.test2='360'"
上面字串是可以更新groups某一筆資料裡的test2欄位裡等於360的test欄改為501
試問:updata groups set groups.test='509' where groups.test2='500'
要如何也可以加進去一起做更新 , 如何撰寫阿?
buffer_BCR="updata groups set groups.test='501' where groups.test2='360' AND updata groups set groups.test='509' where groups.test2='500'" 用AND合併嗎?但我試過了不行 ADOQuery->Close();
ADOQuery->SQL->Clear();
ADOQuery->Parameters->Clear();
ADOQuery->SQL->Add(buffer_BCR);
ADOQuery->ExecSQL(); 祇執行一次而已
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
TIY~2, 您好
剛剛找了一下SQL的help檔,發現update好像不能這樣做。
update好像只允許同時修改不能的欄位(Field),不能相同的欄位同時修改。
以下是由help檔擷取出來的範例。
A. 使用簡單的 UPDATE 這些範例將展示在省略 UPDATE 陳述式的 WHERE 子句時,如何影響所有的資料列。 如果 publishers 資料表中的所有出版社將總公司遷移至 Georgia 州的 Atlanta,本範例將展示更新 publishers 資料表的方式。 UPDATE publishers SET city = 'Atlanta', state = 'GA' 本範例將變更所有出版商的名稱為 NULL。 UPDATE publishers SET pub_name = NULL 您也可以在更新中使用已計算的值。本範例將 titles 資料表中的價格變成兩倍。 UPDATE titles SET price = price * 2 B. 使用含有 WHERE 子句的 UPDATE 陳述式 WHERE 子句指定要更新的資料列。例如,在假想的事件中,northern California 更名為 Pacifica (縮寫為 PC),而 Oakland 的居民投票將城市名稱變更為 Bay City。本範例展示如何針對住址失效的所有前 Oakland 居民,更新 authors 資料表。 UPDATE authors SET state = 'PC', city = 'Bay City' WHERE state = 'CA' AND city = 'Oakland' 您必須撰寫另外一個陳述式為 northern California 其它城市的居民變更州名。 C. 使用 UPDATE 陳述式並配合使用其它資料表的資訊 本範例將修改 titles 資料表中的 ytd_sales 資料行,以反映 sales 資料表中所記錄的最新銷售額。 UPDATE titles SET ytd_sales = titles.ytd_sales sales.qty FROM titles, sales WHERE titles.title_id = sales.title_id AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales) 本範例假設針對指定日期且已更新為最新資料的指定 title,只記錄一個銷售額集合。如果不是這種情況 (如果在同一天內,可以記錄指定 title 的多個銷售額),則此處所展示的範例將無法得到正確的結果。執行不會發生錯誤,但是無論該日實際上發生多少銷售額,每一個 title 只會更新一個銷售額。這是因為單一 UPDATE 陳述式不會對同一個資料列進行兩次更新。 如果在同一天內,一指定的 title 可以發生多個銷售額,則必須在 UPDATE 陳述式內彙總每一個 title 的所有銷售額,如同下列範例所顯示: UPDATE titles SET ytd_sales = (SELECT SUM(qty) FROM sales WHERE sales.title_id = titles.title_id AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales)) FROM titles, sales D. 使用 UPDATE 配合 SELECT 陳述式中的 TOP 子句 本範例將會更新 authors 資料表前 10 個作者的 state 資料行。 UPDATE authors SET state = 'ZZ' FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1 WHERE authors.au_id = t1.au_id================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |