- PR -

SQL ServerのLike文について

投稿者投稿内容
初心
会議室デビュー日: 2004/06/23
投稿数: 15
投稿日時: 2005-09-29 15:44
いつも参考にさせて頂いております。

現在、SQL Server2005のβ版を使用しています。
SQLでLikeを用いでデータの取得を行う際に何故か特定の文字で検索が引っかかりません。
例:
(列:name)
クーリング
カーリング
ケビン

上記のテーブルをTestとしたと仮定し、下記のSQL文を実行した所、データが取得できません。
SELECT * FROM Test WHERE name like '%クー%'
本来なら、「クーリング」が取得されるはずです。('%カー%'も同様でした。)
今まであまりSQL Serverを使用しての開発が無かった為、
知識が乏しいのですが、上記以外の検索は大抵取得できる事は確認致しました。
この文字の組合せだけ(全て試していないので分かりませんが・・・)が、Likeで取得できません。
もしご存知の方がいらしゃいましたら、お教えください。
よろしくお願いします。
初心
会議室デビュー日: 2004/06/23
投稿数: 15
投稿日時: 2005-09-29 16:33
大変お騒がせ致しました。
この問題は、SQLServerの照合順序の問題でした。

現在使用しているDBは、「Japanese_90_CI_AS」を使用しているのが原因のようです。
本来ならば下記のようなSQL文になるようです。

SELECT * FROM Test WHERE name like '%クー%' COLLATE Japanese_BIN

本当にお騒がせ致しました。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-09-29 16:41
引用:
大変お騒がせ致しました。この問題は、SQLServerの照合順序の問題でした。


ちょっと、待ったあー。本当にバイナリ照合で合致したから OK なの?

Japanese_90_CI_AS でも本当は合致しないといけないんじゃないかなあ。少なくとも SQL Server 2000 ではちゃんと '%クー%' でひっかけられますよ。2005 β の不具合だと思いたいところだけど、どーだろうか。
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-09-29 17:42
うちでも再現しました。
SQL Server 2005 CTP July/2005です。

http://blogs.wankuma.com/naka/archive/2005/09/29/18540.aspx
_________________
中博俊 MSMVP Visual Studio C# Since 2004/04-2005/03, MCP
http://naka.wankuma.com/
http://blogs.wankuma.com/naka/
naka@wankuma.com
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2005-09-29 18:32
SQL Server 2000でJapanese_CI_ASだとで大丈夫でした(char/nvarchar)。
SQL Server 2005の問題なのかな?
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2005-09-30 10:31
お疲れ様です。
Japanese_90_CI_AS またやってしまいましたね。。。

とりあえず,Japanese_90_CI_AS で
「クー」,「カー」を引っ掛けられる文字を洗い出しました。

「〇」です。

Unicode:12295,0x3007
漢数字のゼロですね。。。

またありえない文字と一致させてくれています。。。
そして,これら SHIFT_JIS ですと1文字ずれて隣同士なんです。

[code]-----
SELECT [ID]
,[DATA]
FROM [TestDB].[dbo].[JpnTest]
WHERE [DATA] LIKE '%ク〇%' COLLATE Japanese_90_CI_AS
[code]-----

自分の環境では Like に引っかかっています。
皆さんの環境での検証をお願いいたします。

この文字を洗い出した手順については,後ほどフォローアップしようと思います。
さて。。。どうしたものか。

とりいそぎ

----------
TimberLandChapel
http://blogs.timberlandchapel.com/blogs/timberlandchapel/
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-09-30 12:46
JulyとSepで試した結果あたりですね。
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-09-30 13:02
間に合うかどうか。
とりあえず投票よろしく

http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=c540b3c7-fce2-47cc-95e6-fd780172ebea

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