共用方式為


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

適用於:SQL Server

本文討論輸入搜尋條件的下列常值類型時,您必須使用的慣例:

  • 文字值
  • 數值
  • 日期
  • 邏輯值

備註

本文中的資訊衍生自標準 SQL-92 的規則。 不過,每個資料庫都可以以自己的方式實作 SQL。 因此,此處提供的指導方針可能不適用於每個案例。 如果您有有關如何輸入特定資料庫的搜尋值的問題,請參閱您使用之資料庫的檔。

搜尋文字值

當您在搜尋條件中輸入文字值時,適用下列指導方針:

  • 引號 以單引弧括住文字值,如本範例中姓氏所示:

    'Smith'
    

    如果您要在 [準則] 窗格中輸入搜尋條件(Visual Database Tools),您可以直接輸入文字值,查詢和檢視設計工具會自動將單引號放在其中。

    備註

    在某些資料庫中,單引號中的詞彙會解譯為常值,而雙引號中的詞彙會解譯為資料庫物件,例如數據行或數據表參考。 因此,即使查詢和檢視表設計工具可以接受雙引號中的字詞,它可能會以不同於您預期的方式解譯它們。

  • 內嵌單引號 如果您要搜尋的數據包含單引號(單引號),您可以輸入兩個單引號來表示單引號為常值,而不是分隔符。 例如,下列條件會搜尋值 “Swann's Way:”

    ='Swann''s Way'
    
  • 長度限制 輸入長字串時,請勿超過資料庫 SQL 語句的最大長度。

  • 區分大小寫 請遵循您所使用之資料庫的區分大小寫規則。 您所使用的資料庫會判斷文字搜尋是否區分大小寫。 例如,某些資料庫會解譯運算元 「=」 表示完全區分大小寫的比對,但其他資料庫則允許任何大寫和小寫字元組合的相符專案。

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

    WHERE UPPER(lname) = 'SMITH'
    

搜尋數值

當您在搜尋條件中輸入數值時,適用下列指導方針:

  • 引號

    不要以引號括住數位。

  • 非數值字元

    除了小數分隔符(如 Windows 控制面板的 [ 地區設定 ] 對話框中所定義)和負號 (-) 以外,請勿包含非數值字元。 請勿包含數位群組符號(例如千個之間的逗號)或貨幣符號。

  • 十進位標記

    如果您要輸入整數,可以包含小數點,不論您搜尋的值是整數還是實數。

  • 科學表示法

    您可以使用科學表示法輸入非常大或非常小的數位,如下列範例所示:

    > 1.23456e-9
    

搜尋日期

您用來輸入日期的格式取決於您所使用的資料庫,以及您要輸入日期的 [查詢和檢視設計工具] 窗格中。

備註

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

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

  • 地區設定特定

    [Windows 地區設定屬性 ] 對話框中指定日期的格式。

  • 資料庫特定

    資料庫所瞭解的任何格式。

  • ANSI 標準日期

    使用大括弧、標記 'd' 來指定日期和日期字串串的格式,如下列範例所示:

    { d '1990-12-31' }
    
  • ANSI 標準日期時間

    類似於 ANSI 標準日期,但使用 'ts' 而不是 'd',並將小時、分和秒新增至日期(使用 24 小時制),如 1990 年 12 月 31 日範例所示:

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

    一般而言,ANSI 標準日期格式會與使用 true date 數據類型來表示日期的資料庫搭配使用。 相反地,datetime 格式會與支援 datetime 數據類型的資料庫搭配使用。

下表摘要說明您可以在查詢和檢視表設計工具的不同窗格中使用的日期格式。

面板 日期格式
準則 地區設定特定的資料庫特定 ANSI 標準

[準則] 窗格中輸入的日期 (Visual Database Tools) 會轉換成 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;