-
就個人而言,這似乎不是什麼大問題,您只需要檢查生成的語句中的最後乙個字元是否是逗號,如果是,請將其刪除。
示例如下:
s1 := ''+''+''+''+''+''+''+;
if s1[length(s1)]=',' thens1 := copy(s1,1,length(s1)-1);
s2 := ''+''+''+''+''+''+''+;
if s2[length(s2)]=',' thens2 := copy(s2,1,length(s2)-1);
sql := 'select '+ s1 + ''+ '從表1 a、表2 b中分組'+ s2;
順便一提:
if then
沒關係,不要使用 = true
-
我不建議你這樣做,SQL 語句最好為輸出組裝,例如:
varstr string;
str:='select ';
組合查詢的內容。
if(beginstr:=str+'';end;
str:=str+' where ';
合併查詢的條件。
if(beginstr:=str+ '...'//.代表您填寫字段。
end;使用 ADO 查詢。
你這樣寫是沒有問題的,而且除錯起來也很方便,當然可以繼續精簡上面的**,就看你了!
-
用於生成 SQL 語句本身的語句沒有任何問題。
引數沒有預設值,通常表示資料庫中沒有這樣的字段,我見過很多這樣的問題。
自行檢查資料庫中是否有名稱'grbh'不是您錯誤地複製欄位名稱的欄位名稱。
-
簡單地說,如果它是乙個 SQL 資料庫。
Delphi 使用 AdoQuery 和 DataSource 在 AdoQuery 中編寫 SQL 語句。
也就是說,無條件查詢是從表中選擇 *。
加號條件是從表中選擇 *,其中 。條件。
-
你是什麼意思? 是查詢巢狀嗎?
with adoquery do
beginclose;
'select * from';
下面是要追加的查詢');
open;end;
-
對於 SQL 語句,它的 where 子句可以使用 n 個條件。 只要有需要。
-
有什麼條件嗎?
關鍵是SQL語句的組合!
-
根據查詢頁面條件組合元件的選擇,對SQL語句進行拼寫,然後執行拼寫的SQL語句。
-
簡單來說,就是使用巢狀的SQL語句進行查詢。
示例:select * from (select * from table1 where field1=0) where (field2>'abc') and (field3 like '%ok%')
-
select a.序列號,a專案名稱,A
塔型,a基數,乙個重量,b
黑色零件加工,乙個重量,b黑色零件加工為剩餘黑色零件,c
轉換處理,a重量 - c表1 a中作為轉換餘數的轉換處理
左連線表 2 b 上的 a序列號 = b序列號:左聯接表2 c上
序列號 = c序列號 -- “黑色處理”和“轉換處理”的查詢結果中是否存在空? 如果存在 null,則比較複雜,需要新增 case whan 語句和 is null 判斷。
-
假設書名儲存在字串變數 bookname 中,作者儲存在 author 中,出版商儲存在 pub 中。
假設資料庫中的這些欄位都是字串,則只需根據上述變數的值組合查詢語句即可。
varsql: string;
beginsql := 'select * from your_db where 1=1';使用常數真值條件 1=1 是為了方便編寫後面的組合。
if bookname <>'' then
sql := sql + '和書名=''' + bookname + '''';
if author <>'' then
sql := sql + '和 Author=''' + author + '''';
if pub <>'' then
sql := sql + '和 Publisher=''' + pub + '''';
條件組合完成後執行查詢。
= sql;
end;
-
您的意思是當前表有許多字段,但根據場合,僅使用某些表字段進行維護。 是否要從任意數量的字段動態生成 SQL 語句,以便操作任意數量的字段?
我的想法:在查詢所有表時。
使用 adoquery 查詢 select * from table name 獲取所有字段。 然後,它顯示在資料網格中,使用者根據自己的喜好填寫查詢條件。 然後,我們基於一些查詢構造了SQL條件查詢語句。
varwheresql:stirng;
sql:string;
beginfor i:=0 to -1 do
beignif ( unassigned) and (<'' ) then
beginsql := sql + ' and ' + '=' + quotedstr(
end;end;
wehresql := 'select * from '+表名+' where 1=1 ' + sql;
end;關於插入:
使用 AdoQuery 查詢在 FROM 表名稱 where 條件之後選擇某些字段。
然後,將基於此查詢動態插入 SQL 語句。
varsql:string;
ins:string;
runsql :stirng;
for i:=0 to do
beginsql := sql + ',';
ins:= ins + quotedstr( ',';
end;delete(sql,length(sql)-1,1);刪除(ins,length(ins)-1,1); 同上。
runsql = 'insert into '+表名+'(' + sql + ') values(' + ins + ')';
這樣,就可以根據查詢動態推導出相應的SQL語句。
-
不管你用什麼控制項連線資料庫,查詢語句都是SQL,這沒有錯,但是因為表沒有SQL屬性,所以還是需要使用AdoQuery控制項來輸入查詢語句。
也許可以直接用表實現,但我不會,請高指校正。
-
輸入 name='tom',然後將篩選的屬性值設定為 true。
您好,主號在合約期內一定要用這個**,從號可以提現,只要保留主號,對預存的返還沒有影響。 因為辦理4G免費組合共享需要提前存入300元**,所以可以與網路簽訂一年的合同,預存按月退還,下個月起每月退還25元。 合同期內,所有會員號碼必須處於正常使用狀態,保險號碼不能停止,如果合同終止或登出欠款賬戶,剩餘預押金將不作為違約金退還。
您好,您可以將儲存過程或自定義函式用於此更複雜的查詢。 這兩種方法都可以使用變數和程序控制,適用於複雜的資料查詢,並且有很多關於“SQL儲存過程”的完整材料。