輸入搜尋值的規則 (Visual Database Tools)

適用於:SQL Server

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

  • 文字值

  • 數字值

  • 日期

  • 邏輯值

注意

本主題中的資訊衍生自標準 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  
    

另請參閱

指定搜尋條件 (Visual Database Tools)