HOME >> Tips >> Microsoft SQL Server

SQL の検索条件内で照合順序を指定する方法(大文字、小文字を区別する/しない など)

2014/9/13
文書番号:20318

SQL の検索条件内で照合順序を指定する方法について
データベースの標準の照合順序とは異なる照合順序を指定して検索する。


【照合順序の設定を確認する】

  • データベースのデフォルトの照合順序を確認する方法
    
    SELECT SERVERPROPERTY('collation')
    
    ---------------------------------------
    Japanese_CI_AS
    

【照合順序を指定してテーブルを作成する】

  • 特定の照合順序を指定してテーブルを作成する方法
    ※列ごとに指定します。
    
    CREATE TABLE テーブル名 (
         列名1 nchar(4)     COLLATE Japanese_BIN
        ,列名1 nvarchar(20) COLLATE Japanese_BIN
    
    )
    

【COLLATEを指定して検索する】

  • SQL を実行するときに明示的に照合順序を指定して検索します。
    
    SELECT *
    FROM   テーブルA
    WHERE  項目名 = '値' COLLATE Japanese_CS_AS
    

【照合順序のオプション】

  • 照合順序を指定する書式
    
    書式: Japanese_BIN,Japanese_BIN2
    書式: Japanese_(CI | CS)_(AI | AS)[(_KS | _WS | _KS_WS)]
    
    オプション 説明
    BIN バイナリで比較し、すべて区別します。
    BIN2 バイナリコードで比較し、すべて区別します。
    BIN と BIN2 の違いは以下のページをを参照してください。
    [technet] BIN 照合順序と BIN2 照合順序の使用に関するガイドライン
    CI 大文字と小文字を区別しません。「A」と「a」は同じです。
    CS 大文字と小文字を区別します。「A」と「a」を区別します。
    AI アクセント、濁音、半濁音を区別しません。「は」と「ば」と「ぱ」は同じです。
    AS アクセント、濁音、半濁音を区別します。「は」と「ば」と「ぱ」を区別します。
    KS ひらがなとカタカナを区別します。「あ」と「ア」を区別します。
    WS 半角と全角を区別します。「A」と「A」を区別します。

【参考情報】

[technet] Windows 照合順序並べ替えスタイル
http://technet.microsoft.com/ja-jp/library/ms143515(v=sql.105).aspx

[technet] BIN 照合順序と BIN2 照合順序の使用に関するガイドライン
http://technet.microsoft.com/ja-jp/library/ms143350(v=sql.105).aspx

[MSDN] COLLATE (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms184391.aspx

[MSDN] 列の照合順序の設定または変更
http://msdn.microsoft.com/ja-jp/library/ms190920.aspx