- PR -

SQLServerで大文字と小文字の区別について

1
投稿者投稿内容
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2004-03-10 19:47
Like演算子を使って検索した場合に大文字と小文字の区別をしたいのですが
これはどのように行えば良いのでしょうか?

SQLServer2000で照合順序をJapanese_CS_AS_KS_WSで指定していますが、
TESTという大文字のデータとtestという小文字のデータを

LIKE '%t'

と記述して検索するとTEST、testともに取得されてしまいます・・
そもそもT-SQLのLIKE演算子は大文字と小文字の区別をしないのでしょうか?

その場合、大文字と小文字を区別して検索する場合はどのように行えば
良いのでしょうか?

基本的な質問且つ、.NETに直接関係する内容ではないのですが、
よろしくお願いいたします。
ジエゴ
常連さん
会議室デビュー日: 2003/12/08
投稿数: 26
お住まい・勤務地: ヨコハマ
投稿日時: 2004-03-10 20:41
はじめまして、

私はこんな感じで持ってきています
Select * From Test
Where AAA Like '%A%' COLLATE Japanese_CS_AS_KS_WS
DBに設定されたのならもう一度確認してみるとか!?
ちなみにDBに設定すれば
Select * From Test
Where AAA Like '%A%'
で持ってこれてます。
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2004-03-11 09:53
Kazさん、レスありがとうございます。

教えて頂いたやり方で希望する処理ができました。
ただデータベースを作る際に設定した照合順序は
テーブル名やカラム名にしか適用されないのでしょうか?

Like句で、大文字、小文字の区別をする場合は必ず
COLLATE の使用が必須と・・

オラクルではデフォルトで区別すると聞いたのですが、
このあたりは混乱しますね
ジエゴ
常連さん
会議室デビュー日: 2003/12/08
投稿数: 26
お住まい・勤務地: ヨコハマ
投稿日時: 2004-03-11 11:07
そんなことはないと思いますよ。
実験してみましたが、DBに設定すればCOLLATEは必要ないです。。。
DBの照合順序は確認されましたか?
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2004-03-12 10:02
レスありがとうございます。

こちらで新しくデータベースを作成し照合順序を設定したところ
普通に区別されるようになりました。
ただ、以前のデーターベースの照合順序もCS_AS_KE_WSとプロパティに
表示されているのですが、担当者がレプリケーションか何かを使って
いたので、その時になんらかの問題がでたのかもしれません・・

お世話になりました。
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2004-03-12 10:05
レスありがとうございます。

あれから別のデータベースを作成し、照合順序を設定したところ
正常に大文字と小文字を区別して結果セットが取得できました。

以前のデータベースは確かにプロパティには照合順序が
CS_AS_KS_WSとなっていましたが、レプリケーションを行って
いたのでこの段階でなんらかの問題が発生していたのかもしれません。

お騒がせいたしました。
1

スキルアップ/キャリアアップ(JOB@IT)