控制元件查詢資料庫,條件多條,要 判斷是否為空,空的話查詢條件中就沒有它,不空就有,寫不出來,哪位給個例子
uj5u.com熱心網友回復:
什么資料庫的uj5u.com熱心網友回復:
ms sqluj5u.com熱心網友回復:
改下你的查詢陳述句,例如:
select * from table
where (a=:a or :a='ALL')
and (b=:b or :a='ALL')
and (c=:c or :c='ALL')
你的控制元件查詢的時候,做下判斷,例如:
string ls_a,ls_b,ls_b
ls_a = trim(sle_1.text)
ls_b = trim(sle_2.text)
ls_c = trim(ddlb_1.text)
if isnull(ls_a) or ls_a = '' then ls_a = 'ALL'
if isnull(ls_b) or ls_b = '' then ls_b = 'ALL'
if isnull(ls_c) or ls_c = '' then ls_c = 'ALL'
dw_1.retrieve(ls_a,ls_b,ls_c)
uj5u.com熱心網友回復:
改下你的查詢陳述句,例如:select * from table
where (a=:a or :a is null)
and (b=:b or :b is null)
and (c=:c or :c is null)
你的控制元件查詢的時候,做下判斷,例如:
string ls_a,ls_b,ls_b
ls_a = trim(sle_1.text)
ls_b = trim(sle_2.text)
ls_c = trim(ddlb_1.text)
if isnull(ls_a) or ls_a = '' then setnull(ls_a)
if isnull(ls_b) or ls_b = '' then setnull(ls_b)
if isnull(ls_c) or ls_c = '' then setnull(ls_c)
dw_1.retrieve(ls_a,ls_b,ls_c)
uj5u.com熱心網友回復:
如果是查詢同一個欄位的話where 條件IN 然后陣列檢索。String ls_args[]
if trim(sle_1.text) <>'' then
ls_args[upperbound(ls_args)++]=sle_1.text
end if
if trim(sle_2.text)<>'' then
ls_args[upperbound(ls_args)++]=sle_2.text
end if
....
dw_1.retrieve(ls_args)
uj5u.com熱心網友回復:
可以用like的,如果不空就是like '%' + 變數 + '%'如果空 就 直接like '%'%
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/73454.html
標籤:數據庫相關
上一篇:各位大俠 謝謝啊
下一篇:我是菜鳥,幫個忙把!!
