2017-06-08 23 views
1

SQLサーバで文字列の一部を抽出する必要があります。私は列にこの文字列があると言うことができます...SQLサーバの文字列から単語を抽出

Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress 

名前2に等しいテキストを抽出するにはどうすればよいですか?この取り扱いの

+1

は名1、Name2はは、アドレス1は、異なる行のすべての値について固定されているのですか? – GauravKP

+0

はい、それらは修正されています... – MTplus

+0

私の2セント:OPが努力していれば、この質問は重複として閉じられないというメリットがあります。 –

答えて

0

一つの昔ながらの方法はただCHARINDEXSUBSTRINGのような基本的な文字列関数を使用することです。

SELECT 
    SUBSTRING(col, 
       CHARINDEX('Name2', col) + 6, 
       CHARINDEX('&', col, CHARINDEX('Name2', col)) - 
        CHARINDEX('Name2', col) - 6) AS name 
FROM yourTable 

このソリューションは、キーと値のペアは、あなたが私たちを示したために、固定されていることを前提としています。私のクエリでは、2番目の名前の後にambersと終了マーカーが使用されます。これが存在しない場合、例えば。 Name2の最後の文字列でキーの場合は、クエリを更新する必要があります。ここ

デモ:

Rextester

0
declare @string varchar(100) = 'Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress' 


select replace(PARSENAME (replace(@string, '&', '.'), 2), 'Name2=', ''); 
+0

皆さん、ありがとうございました! – MTplus

関連する問題