2011-02-23 21 views
0

SQL Server 2008データベースがあります。次のスキーマでDocumentsと呼ばれるテーブルがあります:SQL Server 2008データベースのSQL XMLでxmlをクエリする方法

Id   int  PK  
DocumentXml xml 

XML文書のすべてのようなものを見て:

<docroot> 
    <name>Some Name</name> 
</docroot> 

私は/docroot/nameのテキスト値が "で始まるすべてのレコードを選択したいですS "(大文字小文字を区別しない)。

最高のパフォーマンスでこのクエリを実行するにはどうすればよいですか?

答えて

1

わからないあなたはこのような何かを行うことができますが、:

SELECT (list of columns) 
FROM dbo.Documents 
WHERE DocumentXml.value('(/docroot/name)[1]', 'varchar(100)') LIKE 'S%' 

データベースの照合順序は、大文字と小文字を区別しない場合には、このLIKE操作も大文字小文字を区別しません。

1

私は/docroot/nameの テキスト値が「S」(大文字insenstive)で を開始するすべてのレコードを選択します。

使用このXPath式: - パフォーマンスに関する

/*/name[starts-with(translate(.,'S','s'), 's')] 
+0

+1は純粋なXPathの方法です。 – Flack

+0

XPathは良いですが、私が問題を抱えていたのはXPathとSQLを組み合わせたものでした。 – smartcaveman

+0

@smartcaveman:申し訳ありませんが、私はそこでお手伝いできませんが、知識のある人にお願いします。 –

関連する問題