- PR -

SQLのWhere条件で全角半角の区別で抽出したい![SQLServer2000]

1
投稿者投稿内容
さわこ
ベテラン
会議室デビュー日: 2003/06/04
投稿数: 71
投稿日時: 2004-02-12 13:50
SQLのSelect文でWhere条件に名称を検索条件にした所・・・問題が発生しました。

以下のデータがあるとします。

[tblTest]
 id       name
-------------------------
000001     テスト1 ←数字は全角
000002     テスト2 ←数字は全角
000003     テスト3 ←数字は全角
000004     テスト1 ←数字は半角


Select *
From tblTest
Where name = 'テスト1' ←半角

とすると、

 id       name
-------------------------
000001     テスト1 ←数字は全角
000004     テスト1 ←数字は全角

が結果として返ってきました。

「テスト1←(半角)」を条件に抽出したいのですが、どうしたらよろしいのでしょうか?!
こんな初心者に教えてください!!

色々調べてはみたのですが、理解できず・・・・


よろしくお願い致します。

P.S.ちなみに、DBのnameフィールドのデータ型はnvarchar(255)です。
Anon
常連さん
会議室デビュー日: 2003/10/20
投稿数: 29
投稿日時: 2004-02-12 13:59
SQLServerの設定で照合順序を変更すればいけると思いますよ。

CI
大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない

CS
大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する

AI
アクセント、濁音、破裂音を区別しない。

AS
アクセント、濁音、破裂音を区別する。

KS
ひらがなとカタカナを区別する。半角でも区別する

WS
文字幅を区別する。つまり全角、半角を区別する。
さわこ
ベテラン
会議室デビュー日: 2003/06/04
投稿数: 71
投稿日時: 2004-02-12 14:14
SQLServerの設定で照合順序を変更すれば・・・?ですか・・・。。。。

う〜ん。それはどうやったらいいのでしょうか?
すみません。。初心者な者で、さっぱりわかりません。

オプションとか開いてはみたんですけど・・・それらしき設定する場所が見当たりません。

ちなみに、それは環境を直すってことですよね?
コード上ではどうにもならないのでしょうか・・・

Select文のなかとかでは・・・・。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-12 14:31
Select *
From tblTest
Where name = 'テスト1' COLLATE Japanese_CS_AS_KS_WS

でうまくいくと思います。
「Japanese_CS_AS_KS_WS」の意味はAnonさんの書き込みとヘルプを参考にして下さい

さわこ
ベテラン
会議室デビュー日: 2003/06/04
投稿数: 71
投稿日時: 2004-02-12 14:49
素晴らしい!!

すぐに出来ました!
有難うございました!
こんな機能があるとは思いませんでしたよっ!

Anonさん、ゆうじゅんさん!
本当にありがとうございました!!

また、何かありましたら、その時はお世話になります!!
1

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