跳轉到

查詢條件運算子

TsERP 全系統的「瀏覽與查詢」、「條件過濾」、「報表篩選」畫面,在每個查詢欄位旁邊都會有一個運算子(Operator)下拉選單。這個選單決定您輸入的值要怎麼跟資料庫比對 —— 是要完全相等、開頭相符、包含片段,還是介於兩個值之間。

本頁說明系統提供的 19 個運算子、它們會產生什麼樣的 SQL 條件、以及在日常查詢時該如何選用。

適用範圍

本頁介紹的運算子適用於所有使用 RadGridView 查詢條件列的畫面,例如 客戶主檔查詢品項主檔查詢銷售訂單查詢庫存異動查詢應收帳款查詢 等。

查詢條件運算子下拉畫面

功能簡介

在每一個查詢畫面的條件列,您會看到三個欄位並列:

  1. 欄位名稱(例如「客戶代號」、「客戶簡稱」)
  2. 運算子(本頁主題,例如「等於」、「開始於」、「包含」)
  3. 輸入值(例如 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,想直接查這一筆。

  1. 客戶代號 欄位的運算子選擇 等於
  2. 輸入值填入 C001
  3. 查詢

查不到?

若查不到,有可能該欄位在資料庫是固定長度(例如 char(10)),資料實際存的是 C001(後面補空白)。此時請改用 開始於包含,見下一範例。

範例 2:找所有 C 開頭的客戶

情境:一次列出所有「C」系列客戶。

  1. 客戶代號開始於
  2. 輸入值填入 C
  3. 查詢

範例 3:找名稱含「工業」的客戶

情境:想找所有公司名稱含有「工業」兩字的客戶,無論前後是什麼字。

  1. 客戶簡稱包含
  2. 輸入值填入 工業
  3. 查詢

結果會列出「XX 工業股份有限公司」、「工業科技」等所有包含「工業」的資料。

範例 4:一次查 3 個特定客戶

情境:業務要比對 C001C025C108 這 3 家客戶。

  1. 客戶代號被包含
  2. 輸入值填入 C001,C025,C108(用半形逗號分隔,不要加空白)
  3. 查詢

範例 5:找金額超過 10 萬的訂單

情境:在 E 銷售 → 銷售訂單查詢,找出未結案且金額大於 100,000 的訂單。

  1. 訂單金額大於
  2. 輸入值填入 100000(不要加千分位逗號)
  3. 查詢

範例 6:找尚未結案的訂單

情境:列出所有「結案日期」還沒填的訂單。

  1. 結案日期等於 Null
  2. 無需輸入值
  3. 查詢

欄位型態對行為的影響

不同資料型態下,同一個運算子行為可能不同,以下是幾個容易踩雷的要點:

字串專屬運算子

開始於結尾為包含不包含 這 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,則 C001c001 視為不同。如不確定,請洽 IT 確認。

相關功能