全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1730
推到 Plurk!
推到 Facebook!

兩個欄位以上的條件搜尋

 
dhliu
一般會員


發表:18
回覆:24
積分:8
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-06 05:05:30 IP:211.76.xxx.xxx 訂閱
請問各位 我在 BCB 中使用ADOQuery 去讀取 Access 的資料, 有十幾個欄位, 我用其中幾個欄位作為篩選的條件, ADOQuery 的 SQL 指令大概如下: Select * From Table where Field1=1 OR Field1=2 OR Field1=3 AND Field2 Between 10 And 20 如果不加 Field2 的那一段語法的話顯示就正常, 但是如果加上 Field2 以後, Field2 的部分完全沒有效果, 如果我的 Field2 語法改成 Field2>10 And Field2<20 也是一樣, 那麼我該如何下 SQL 指令才能過濾數個欄位的資料呢?
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-06 09:41:34 IP:61.221.xxx.xxx 訂閱
<textarea class="sql" rows="10" cols="60" name="code"> Select * From Table where ( Field1=1 OR Field1=2 OR Field1=3 ) AND Field2 Between 10 And 20 </textarea> TRY TRY SEE
dhliu
一般會員


發表:18
回覆:24
積分:8
註冊:2003-03-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-06 16:25:30 IP:211.76.xxx.xxx 訂閱

===================引 用 文 章===================
<textarea class="sql" rows="10" cols="60" name="code">Select * From Table where ( Field1=1 OR Field1=2 OR Field1=3 ) AND Field2 Between 10 And 20 </textarea> TRY TRY SEE

以上方式我也試過, 但是加了括弧後更糟糕, 完全沒有輸出的結果了
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-07 12:40:50 IP:59.124.xxx.xxx 未訂閱
先用文字描述一下妳要的結果,才有辦法下Command


Fishman
------
Fishman
dhliu
一般會員


發表:18
回覆:24
積分:8
註冊:2003-03-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-02-07 13:29:27 IP:211.76.xxx.xxx 訂閱
===================引 用 文 章===================
先用文字描述一下妳要的結果,才有辦法下
Fishman

我有幾個欄位, 假定這些欄位是 ID、Field1、Field2、Field3、Field4、Field5, 我要取出 ID 的資料為 1、2、5、9、26 的欄位, 在這些資料中又要選出 Field2 欄之中值在 10~30 之間, 我下的指令是: <textarea class="sql" rows="10" cols="60" name="code"> Select * From Table Where [ID]=1 OR [ID]=2 OR [ID]=5 OR [ID]=9 OR [ID]=26 AND [Field2] Between 10 And 30 </textarea>
但我試驗的結果, 如果 ID 的條件設了一堆, 在一堆 [ID]=? 的前後不加括號, 出來的結果就跟沒有設條件一樣, 如果在 [ID]=? 那一串的前後加上括號, 結果又出不來, 目前我僅能讓使用者一次只能選擇一個 ID 值做輸出... 我的環境是 BCB 6.0 Access
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-02-07 13:41:02 IP:59.124.xxx.xxx 未訂閱
你前面的條件給錯啦! <textarea class="sql" rows="10" cols="60" name="code"> SELECT * FROM TABLE WHERE (ID = 1 OR ID = 2 OR ID = 5 OR ID = 9 OR ID = 26) AND FIELD2 BETWEEN 10 AND 20 </textarea> OR <textarea class="sql" rows="10" cols="60" name="code"> SELECT * FROM TABLE WHERE [ID] IN (1,2,5,9,26) AND FIELD2 BETWEEN 10 AND 20 </textarea> Fishman
------
Fishman
dhliu
一般會員


發表:18
回覆:24
積分:8
註冊:2003-03-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-02-07 15:57:27 IP:211.76.xxx.xxx 訂閱
哇~ 感謝感謝...
這樣終於可以正常動作了, 只是我還有疑問, 為什麼我給那樣的條件, 跟預期的結果會差別這麼大呢? 加了括弧會變成找不到東西, 不加括弧又像是完全沒有給條件...
系統時間:2024-06-28 13:17:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!