如何在SQL 字串中要加入Where條件 (業務員=112) |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
請教各位前輩
SQL字串的處理是否有較好的方式
如在以下的SQL 字串中要加入Where條件 (業務員=112)
及排序方式改為 業務員,客戶編號,如下方的結果
因我的Table及查詢條件都是動態的不是固定Table,所以想由程式
去處理 Where 及 ORderby字串
請教各位前輩是否有較好的方式?? Select 客戶.*
From 客戶
Where (區別='A') and (類別 between 001 and 500) and (客戶編號>100)
Order by 區別,客戶編號 ------------
要求結果 Select 客戶.*
From 客戶
Where( (區別='A') and (類別 between 001 and 500) and (客戶編號>100) )And (業務員=112)
Order by 業務員,客戶編號 謝謝各位前輩.........
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi jeffreck :
Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select 客戶.* '); Query1.SQL.Add('From 客戶 '); Query1.SQL.Add('Where (區別='A') and (類別 between 001 and 500) and (客戶編號>100) '); if .... then begin Query1.SQL.Add(' and (業務員=112) '); Query1.SQL.Add('Order by ... '); end; if ... then begin Query1.SQL.Add(' and ... '); Query1.SQL.Add('Order by ... '); end; 或是先在Query裡下好靜態的SQL字串, 用StringReplace去取代 Select 客戶.* From 客戶 Where( (區別='A') and (類別 between 001 and 500) and (客戶編號>100) ) /*WhereReplace*/ /*OrderByReplace*/ if .... then begin StrWhere := ' and (業務員=112)'; StrOrder := 'Order by ... ' end; if ... then begin StrWhere := ' and ... '; StrOrder := 'Order by ... '; end; Query1.SQL.Text := StringReplace(Query1.SQL.Text, /*WhereReplace*/, StrWhere, [rfIgnoreCase]); Query1.SQL.Text := StringReplace(Query1.SQL.Text, /*OrderReplace*/, StrOrder, [rfIgnoreCase]);我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |