共用方式為


比較運算子 (Visual Database Tools)

更新:2007 年 11 月

你可以在搜尋條件中使用任何標準的 SQL 運算子。

在搜尋條件中使用運算子時適用下列規則:

  • 進行比較的資料其資料型別必須相符。也就是,文字只能和文字比較、數字只能和數字比較,以此類推。有些資料庫管理系統允許您使用函式或關鍵字 (例如,CAST),暫時將資料轉換為另一種資料型別。如需詳細資訊,請參閱您的資料庫文件。

  • 比較文字資料時,結果視目前使用的字元集而定。例如,資料表如果是使用北歐字元建立的,搜尋結果會因您目前的字元集 (字碼頁) 是北歐或其他字元集而不同。

  • 如果比較值是 null,則無法得知結果。Null 和任何值都不相符,包括其他 null 的情況。例如,您如果是搜尋以 "M" 字母為開頭或以 "M" 以後字母為開頭的名稱 (name >= 'M'),而有些資料列不含任何值,則不論您使用何種比較運算子,這些資料列都不會顯示。

下表摘要了為標準 SQL 定義的搜尋條件運算子。

注意事項:

此主題的資訊衍生自標準 SQL-92 的規則。但是,每一個資料庫都可以用自己的方式實作 SQL。因此,這裡提供的準則不一定適用於所有的情況。如果對於在某特定資料庫使用運算子有任何疑問,請參考您所使用之資料庫的文件。

運算子

意義

準則窗格範例*

SQL 窗格範例

=

等於

= 'Smith'
SELECT fname, lname
FROM employees
WHERE lname = 'Smith'

<> !=

不等於

<> 'Active'
SELECT fname, lname
FROM employees
WHERE status <> 'Active'

>

大於

> '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date >
 '12/31/90'

<

小於

< 100
SELECT fname, lname
FROM employees
WHERE job_lvl < 100

>= !<

大於或等於

>= 'T'
SELECT au_lname
FROM authors
WHERE au_lname >= 'T'

<= !>

小於或等於

<= '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date <= 
 '01/01/95'

BETWEEN expr1 AND expr2

測試值的範圍

BETWEEN 
'01 Jan 1995' 
AND 
'31 Dec 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date 
 BETWEEN '12/31/90'
 AND '12/31/91'

IS [NOT] NULL

測試資料行的內容或運算式的結果是否為 Null

IS NULL
SELECT fname, lname
FROM employees
WHERE photo_on_file IS NULL

[NOT] LIKE

執行模式比對 (通常限於字元資料型別)

LIKE ('MAC%')
SELECT fname, lname
FROM employees
WHERE lname LIKE ('MAC%')

expr1 [NOT] IN (val1、val2, ...)-或-expr1 [NOT] IN (子查詢)

藉由測試 expr1 是否出現在值清單或子查詢結果集中,比對特定值的清單。

IN ('SW', 'SE')
supplier_id IN
  (subquery)
SELECT fname, lname
FROM employees
WHERE sales_region IN ('SW', 'SE')
SELECT product_name
FROM products
WHERE supplier_id IN
  (SELECT supplier_id
  FROM supplier
  WHERE (country = 'Sweden'))

ANY (SOME)

測試子查詢結果集中的一或多個資料列是否符合指定的條件 (ANY 和 SOME 是同義字,[查詢和檢視表設計工具] 會在建立 SQL 陳述式時使用 ANY)。

<> ANY (subquery)
SELECT au_lname, au_fname
FROM authors
where city <> any
 (SELECT city FROM publishers)

ALL

測試子查詢結果集中所有的資料列是否符合指定的條件

advance > ALL (subquery)
SELECT title FROM titles
where advance > all
  (SELECT advance FROM
   publishers,titles
  where titles.pub_id 
   = publishers.pub_id
  AND pub_name = 
   'Alogdata Infosystems')

[NOT] EXISTS

測試子查詢是否都會傳回任何結果 (非特定結果)

EXISTS (subquery)
SELECT product_name
FROM products
WHERE EXISTS
  (SELECT * FROM 
   orders, products
  WHERE orders.prod_id 
  = products.prod_id)

* 為保持明確,準則窗格範例中每一個運算子只包含一個範例,且未指出搜尋的是哪一個資料行。

** 可使用 Windows [地區設定] 對話方塊中指定的格式,在 [準則] 窗格中輸入日期。如需詳細資訊,請參閱輸入搜尋值的規則

請參閱

其他資源

設計查詢和檢視表

參考 (Visual Database Tools)