SQL Server の WHERE 句で大文字と小文字を区別した検索を実現する
SQL Server の WHERE 句内の文字列比較のデフォルト動作では、大文字と小文字が区別されません。 これは、大文字と小文字を区別した正確な検索が必要な場合に課題となります。
大文字と小文字を区別した比較に照合順序を利用する
解決策は、COLLATE
キーワードを利用することです。 このキーワードを使用すると、比較に関係する列の照合順序を指定できるため、大文字と小文字の区別を含む文字列一致のルールを定義できます。
例:
<code class="language-sql">SELECT 1 FROM dbo.Customers WHERE CustID COLLATE SQL_Latin1_General_CP1_CS_AS = @CustID AND OrderID COLLATE SQL_Latin1_General_CP1_CS_AS = @OrderID</code>
ここで、COLLATE SQL_Latin1_General_CP1_CS_AS
は、CustID
列と OrderID
列の両方で大文字と小文字を区別した比較を強制します。
永続的に大文字と小文字を区別するための列プロパティの変更
一貫して大文字と小文字を区別する動作を実現するには、テーブル定義内で列のプロパティを直接調整できます。 デフォルトでは、列は大文字と小文字を区別しないプロパティで作成されます。
COLLATE と LIKE 演算子の統合
COLLATE
キーワードは、大文字と小文字を区別するパターン マッチングのために LIKE
演算子とシームレスに統合されます。
<code class="language-sql">SELECT * FROM tbl_Partners WHERE PartnerName COLLATE SQL_Latin1_General_CP1_CS_AS LIKE 'MyEx%' COLLATE SQL_Latin1_General_CP1_CS_AS</code>
このクエリは、「MyEx」で始まる PartnerName
値の大文字と小文字を区別した検索を実行します。
以上がSQL Server の WHERE 句で大文字と小文字を区別した検索を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。