- - PR -
SQL Server 2005 のXQuery(FLWR)を利用したあいまい検索について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-12-15 11:34
発投稿になります。よろしくお願いいたします。
投稿場所を、XMLにするか、.NETにするか迷いましたが、製品依存による問題なので ここに投稿させていただきました。 現在、SQL Server2005 +.NET Framework1.*(C#)+WindowsXP Pro の開発環境で構築を行っています。 システムの入れ替えに伴い、ContactXML形式のデータを SQL Server 2000に入れていたものをSQL Server2005のxml型に入れて 構築をしております。 その中で、フィルタリングで困っています。 前は、取得したXMLデータをプログラムでXPathを利用しあいまい検索をしていました。今回は2005ということで、XQueryを利用して、あいまい検索を行おうと思っているのですが、その式がうまくいきません。 試そうとしている式を、例として書かせていただきますが、for句の所で エラーとなります。 Microsoftのサイトでも、あいまい検索の手法をみつけられなくて、困っています。 このXQueryの文法は、他のXMLDB(NeoCore)ではうまくいくようです。 SELECT DOCUMENT.query('declare namespace DC="http://www.xmlns.org/2002/ContactXML"; for $base in /DC:ContactXML/DC:ContactXMLItem[DC:Occupation/DC:OccupationItem/DC:OrganizationName =*'ab'*] return <results> <name>{data($base/DC:PersonName/DC:PersonNameItem/DC:FullName)}</name> <address>{data($base/DC:Address/DC:AddressItem/DC:FullAddress)}</address> <organization>{data($base/DC:Occupation/DC:OccupationItem/DC:OrganizationName)}</organization> <URL>{data($base/DC:Web/DC:WebItem)}</URL></results>') as XMLResults FROM [table] WHERE ID=1 加えて、where句で「*」のワイルドカードを利用しても文法エラーとなります。 ご教授お願い致します。 |
|
投稿日時: 2006-12-15 14:32
自己解決しました。
for句を for $base in /DC:ContactXML/DC:ContactXMLItem[contains(.,"検索文字列")] にして、できました。後はノード指定の微調整です。 お邪魔しました。 場違いでしたね。すみませんでした。 |
1
