共用方式為


搜尋值的輸入規則

更新:2007 年 11 月

本主題會討論輸入下列搜尋條件之常值型別時必須使用的規格:

  • 文字值

  • 數字值

  • 日期

  • 邏輯值

注意事項:

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

搜尋文字值

下列準則適用於在搜尋條件中輸入文字值時:

  • 引號:以單引號括住文字值,例如,下列的姓氏範例:

    'Smith'
    

    如果您是在準則窗格中輸入搜尋條件,則可以只輸入文字值,[查詢和檢視表設計工具] 會自動在前後加上單引號。

    注意事項:

    在某些資料庫中,單引號中的詞會解譯為常值,而雙引號中的詞會解釋為資料行或資料表參考之類的資料庫物件。因此,即使 [查詢和檢視表設計工具] 可以接受以雙引號括住的詞,其解譯的結果可能會和您的預期不同。

  • 嵌入所有格符號:如果您要搜尋的資料包含一個單引號 ('),您可以輸入兩個單引號以表示您輸入的單引號是常值而不是分隔符號。例如,以下條件會搜尋 "Swann's Way" 這個值:

    ='Swann''s Way'
    
  • 長度限制:輸入長字串時,不要超過您資料庫 SQL 陳述式的最大長度。

  • 區分大小寫:遵照您使用之資料庫的大小寫區分規則。您所使用的資料庫會決定文字搜尋是否區分大小寫。例如,有些資料庫將運算子 "=" 解譯為大小寫完全相符,但是有些資料庫則允許大小寫字元的任何組合。

    如果您不確定資料庫搜尋時是否使用區分大小寫,可以在搜尋條件中使用 UPPER 或 LOWER 函式轉換搜尋資料的大小寫,如下列範例所示:

    WHERE UPPER(lname) = 'SMITH'
    

    如需轉換為大寫和小寫字母之函式的詳細資訊,請參閱運算式的函式

搜尋數字值

下列準則適用於在搜尋條件中輸入數字值時:

  • 引號:不要用引號括住數字。

  • 非數字字元:除了十進位分隔符號 (在 Windows [控制台] 的 [地區設定] 對話方塊中所定義) 和負號 (-) 以外,不要包含非數字字元。不要包含數字分位符號 (例如,千位用逗號分開) 或貨幣符號。

  • 小數符號:如果是輸入整數,可以包含小數符號,不論您搜尋的值是整數或實數。

  • 科學標記法:可以使用科學標記法輸入非常大或非常小的數字,如下列例子所示:

    > 1.23456e-9
    

搜尋日期

用來輸入日期的格式是依您使用的資料庫和在 [查詢和檢視表設計工具] 中的哪個窗格輸入日期而定。

注意事項:

如果您不知道資料來源所用的格式為何,請在 [準則] 窗格的篩選條件資料行中,以任何您熟悉的格式輸入日期。設計工具會將大部分這類的輸入項目轉換成適當格式。

[查詢和檢視表設計工具] 可以使用下列的日期格式:

  • 地區設定特性 (Locale-Specific):在 [Windows 區域設定內容] 對話方塊中指定的日期格式。

  • 資料庫特性:資料庫能夠辨識的任何格式。

  • ANSI 標準日期:使用括號、標記 'd' 來指定日期和日期字串的格式,如下列例子所示:

    { d '1990-12-31' }
    
  • ANSI 標準日期時間:類似於 ANSI 標準日期,但是不用 'd',改用 'ts',並且在日期中加入時、分及秒 (使用 24 小時格式的時鐘),例如下列例子的 1990 年 12 月 31 日:

    { ts '1990-12-31 00:00:00' }
    

    一般而言,ANSI 標準日期格式通常使用於以真實日期資料型別表示日期的資料庫。相較之下,日期時間格式則是用於支援日期時間資料型別的資料庫。

下表摘要出可以在 [查詢和檢視表設計工具] 不同窗格中使用的各種日期格式。

窗格

日期格式

準則

地區設定特性
資料庫特性
 ANSI 標準

準則窗格中輸入的日期,會在 SQL 窗格中轉換為與資料庫相容的格式。

SQL

資料庫特性 
ANSI 標準

結果

地區設定特性

搜尋邏輯值

每一種資料庫的邏輯資料格式不同。False 值常常會儲存為零 (0)。True 值則常是儲存為 1,偶爾會有儲存為 -1 的情形。在搜尋條件中輸入邏輯值時適用下列準則:

  • 若要搜尋 False 值,請使用零,如下列例子所示:

    SELECT * FROM authors
    WHERE contract = 0
    
  • 搜尋 True 值時如果不確定該使用什麼格式,可以如下列例子用 1 試試看:

    SELECT * FROM authors
    WHERE contract = 1
    
  • 或者可以搜尋任何非零值以擴大搜尋範圍,如下列例子所示:

    SELECT * FROM authors
    WHERE contract <> 0
    

請參閱

其他資源

指定搜尋準則