查詢條件運算子¶
TsERP 全系統的「瀏覽與查詢」、「條件過濾」、「報表篩選」畫面,在每個查詢欄位旁邊都會有一個運算子(Operator)下拉選單。這個選單決定您輸入的值要怎麼跟資料庫比對 —— 是要完全相等、開頭相符、包含片段,還是介於兩個值之間。
本頁說明系統提供的 19 個運算子、它們會產生什麼樣的 SQL 條件、以及在日常查詢時該如何選用。
適用範圍
本頁介紹的運算子適用於所有使用 RadGridView 查詢條件列的畫面,例如 客戶主檔查詢、品項主檔查詢、銷售訂單查詢、庫存異動查詢、應收帳款查詢 等。

功能簡介¶
在每一個查詢畫面的條件列,您會看到三個欄位並列:
- 欄位名稱(例如「客戶代號」、「客戶簡稱」)
- 運算子(本頁主題,例如「等於」、「開始於」、「包含」)
- 輸入值(例如
C001、工業)
系統依據這三項組合,動態產生 SQL 的 WHERE 條件送到資料庫。選對運算子,可以讓查詢更精準、更快速;選錯運算子,最常見的狀況是「明明資料在那裡,就是查不到」。
前置需求¶
- 已具備登入 TsERP 的使用者帳號
- 具備該查詢畫面的瀏覽權限
- 了解您要查詢的欄位是字串、數值 或 日期(不同型態下部分運算子的行為會不同)
操作步驟¶
以下以 B 基本資料 → 客戶主檔查詢 為例,示範如何使用運算子。
1. 開啟查詢畫面¶
從主選單選擇 B 基本資料 → 客戶主檔,切換到 瀏覽 分頁,或直接開啟 客戶主檔查詢 視窗。

2. 選擇欄位與運算子¶
在條件列上,找到要查詢的欄位(例如 客戶代號),點選該欄位旁邊的運算子下拉選單。
預設值
字串欄位預設是 開始於(StartsWith),因此直接輸入 C 即可查出所有 C 開頭的客戶。若要做完全比對,請改選 等於。
3. 輸入比對值¶
於右側的輸入欄位填入要比對的值:
- 單一值:如
C001 - 多個值(搭配
被包含/不被包含):用半形逗號分隔,如C001,C002,C003 - 區間值(搭配
介於之間):填寫起始值與結束值兩格
4. 執行查詢¶
按下工具列的 查詢 按鈕,或按 F5。系統會依據條件列組合出 SQL 送到資料庫,結果顯示於下方資料列。
注意
條件列可以同時對多個欄位設定運算子。多欄位之間預設以 AND 結合,意思是「所有條件都要同時符合」才會出現在結果中。
完整運算子列表¶
以下表格整理 19 個運算子的中英文名稱、在字串欄與數值欄的行為、以及產生的 SQL 片段。
一般比較運算子¶
| 中文名稱 | 英文名稱 | 字串欄 SQL | 數值欄 SQL |
|---|---|---|---|
| 等於 | IsEqualTo | col = 'x' |
col = x |
| 不等於 | IsNotEqualTo | col <> 'x' |
col <> x |
| 大於 | IsGreaterThan | col > 'x' |
col > x |
| 大於或等於 | IsGreaterThanOrEqualTo | col >= 'x' |
col >= x |
| 小於 | IsLessThan | col < 'x' |
col < x |
| 小於或等於 | IsLessThanOrEqualTo | col <= 'x' |
col <= x |
字串比對運算子¶
以下 4 個運算子僅對字串欄位有意義。
| 中文名稱 | 英文名稱 | 產生的 SQL |
|---|---|---|
| 開始於(字串欄預設值) | StartsWith | col LIKE 'x%' |
| 結尾為 | EndsWith | col LIKE '%x' |
| 包含 | Contains | col LIKE '%x%' |
| 不包含 | DoesNotContain | col NOT LIKE '%x%' |
型態限制
若把「開始於」、「結尾為」、「包含」、「不包含」套用到數值 或 日期 欄位,系統通常會忽略該條件或回傳空結果。請改用 等於、大於或等於 等比較運算子。
清單比對運算子¶
| 中文名稱 | 英文名稱 | 字串欄 SQL | 數值欄 SQL |
|---|---|---|---|
| 被包含 | IsContainedIn | col IN ('x','y','z') |
col IN (1,2,3) |
| 不被包含 | IsNotContainedIn | col NOT IN ('x','y','z') |
col NOT IN (1,2,3) |
多值輸入方式
使用「被包含」或「不被包含」時,在輸入欄位用半形逗號分隔多個值,例如:C001,C002,C003。系統會自動拆成 IN 條件。
空值運算子¶
| 中文名稱 | 英文名稱 | 字串欄行為 | 數值欄行為 |
|---|---|---|---|
| 等於 Null | IsNull | col IS NULL |
col IS NULL |
| 不等於 Null | IsNotNull | col IS NOT NULL |
col IS NOT NULL |
| 等於空白 | IsEmpty | 去除前後空白後長度 = 0 | col = 0 |
| 不等於空白 | IsNotEmpty | 去除前後空白後長度 > 0 | col <> 0 |
Null 與空白的差別
- Null:欄位「從未填值」或「被刪成空」,在資料庫裡是
NULL。 - 空白:欄位有值但內容只有空白字元,或是數字欄位的
0。
實務上建議兩者都查一次,避免漏資料。
區間運算子¶
| 中文名稱 | 英文名稱 | 字串欄 SQL | 數值欄 SQL |
|---|---|---|---|
| 介於之間 | Between | col BETWEEN 'x' AND 'y' |
col BETWEEN x AND y |
特殊條件切換¶
| 中文名稱 | 英文名稱 | 說明 |
|---|---|---|
| 套用此條件 | Consider This Condition | 套用系統預設條件(例如「只顯示啟用中」),通常不需要改動 |
| 不套用此條件 | Not Consider This Condition | 忽略此欄位的所有條件,等同於不過濾這一欄 |
常用情境範例¶
範例 1:找一筆特定客戶¶
情境:您知道客戶代號是 C001,想直接查這一筆。
- 在 客戶代號 欄位的運算子選擇
等於 - 輸入值填入
C001 - 按
查詢
查不到?
若查不到,有可能該欄位在資料庫是固定長度(例如 char(10)),資料實際存的是 C001(後面補空白)。此時請改用 開始於 或 包含,見下一範例。
範例 2:找所有 C 開頭的客戶¶
情境:一次列出所有「C」系列客戶。
- 客戶代號 選
開始於 - 輸入值填入
C - 按
查詢
範例 3:找名稱含「工業」的客戶¶
情境:想找所有公司名稱含有「工業」兩字的客戶,無論前後是什麼字。
- 客戶簡稱 選
包含 - 輸入值填入
工業 - 按
查詢
結果會列出「XX 工業股份有限公司」、「工業科技」等所有包含「工業」的資料。
範例 4:一次查 3 個特定客戶¶
情境:業務要比對 C001、C025、C108 這 3 家客戶。
- 客戶代號 選
被包含 - 輸入值填入
C001,C025,C108(用半形逗號分隔,不要加空白) - 按
查詢
範例 5:找金額超過 10 萬的訂單¶
情境:在 E 銷售 → 銷售訂單查詢,找出未結案且金額大於 100,000 的訂單。
- 訂單金額 選
大於 - 輸入值填入
100000(不要加千分位逗號) - 按
查詢
範例 6:找尚未結案的訂單¶
情境:列出所有「結案日期」還沒填的訂單。
- 結案日期 選
等於 Null - 無需輸入值
- 按
查詢
欄位型態對行為的影響¶
不同資料型態下,同一個運算子行為可能不同,以下是幾個容易踩雷的要點:
字串專屬運算子
開始於、結尾為、包含、不包含 這 4 個運算子只對字串欄位有效。套用到數值或日期欄位時,可能被系統忽略或得到空結果。
等於空白的雙面性
- 字串欄位的
等於空白會比對「去除前後空白後長度為 0」,因此''、' '、' '都會被列為空白。 - 數值欄位的
等於空白實際等同於col = 0,數字 0 的資料也會被查出來,請小心使用。
日期欄位的等於會自動展開為區間
對日期欄位使用 等於(例如 2026-04-17)時,系統會自動轉成「該日 00:00:00 到隔天 00:00:00 之前」的範圍,這樣才能正確比對帶有時分秒的 DateTime 欄位。因此不用擔心「資料明明是當天,但因為有時分秒查不到」的問題。
固定長度字串欄位
若欄位在資料庫是 char(N) 型態(例如 char(10)),資料會以空白補滿。此時用 等於 查 C001 有可能查不到(因為實際值是 C001)。建議改用 開始於 或 包含,或由系統管理員將欄位改成 varchar。
常見問題¶
為什麼我輸入「A001」用「等於」查不到?
最常見的原因是資料庫欄位型態為固定長度字串(char(N)),實際存的資料後面有補空白。請改用 開始於 A001 或 包含 A001,通常就能查到。若經常發生,請回報給系統管理員評估是否調整欄位型態。
「被包含」要怎麼輸入多個值?
在輸入欄位用半形逗號分隔即可,例如 C001,C002,C003。不要加空白、不要用全形逗號、不要加引號,系統會自動處理。若值本身含逗號(罕見情況),請洽 IT 支援。
「套用此條件」和「不套用此條件」是什麼意思?
這是系統為了「欄位預設條件」設計的開關。例如客戶主檔查詢預設只顯示啟用中的客戶,這個「啟用中」就是欄位預設條件。
套用此條件(預設):沿用系統預設,繼續只看啟用中的客戶。不套用此條件:忽略預設,把啟用與停用的客戶都列出來。
一般情況不需要改動,只有在需要查停用資料時才切換。
「等於 Null」和「等於空白」差在哪?
等於 Null:欄位在資料庫是NULL,表示「從未填值」。等於空白:欄位有值但內容是空白字串,或數值欄位為0。
兩者在資料庫是不同狀態。如果您要「找所有沒填的」,保險做法是先查 等於 Null,再查 等於空白,或請 IT 協助寫成一次查詢。
查詢條件可以存起來下次再用嗎?
可以。大部分查詢畫面都支援 儲存條件 功能,把目前設定的所有欄位運算子與值存成命名的查詢模板,下次在同畫面直接載入即可。詳見各模組的查詢說明。
輸入值的大小寫有差嗎?
預設情況下字串比對不區分大小寫(因 SQL Server 的預設 Collation)。但若您的資料庫採用區分大小寫的 Collation,則 C001 與 c001 視為不同。如不確定,請洽 IT 確認。