SQLサーバで文字列の一部を抽出する必要があります。私は列にこの文字列があると言うことができます...SQLサーバの文字列から単語を抽出
Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress
名前2に等しいテキストを抽出するにはどうすればよいですか?この取り扱いの
SQLサーバで文字列の一部を抽出する必要があります。私は列にこの文字列があると言うことができます...SQLサーバの文字列から単語を抽出
Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress
名前2に等しいテキストを抽出するにはどうすればよいですか?この取り扱いの
一つの昔ながらの方法はただCHARINDEX
とSUBSTRING
のような基本的な文字列関数を使用することです。
SELECT
SUBSTRING(col,
CHARINDEX('Name2', col) + 6,
CHARINDEX('&', col, CHARINDEX('Name2', col)) -
CHARINDEX('Name2', col) - 6) AS name
FROM yourTable
このソリューションは、キーと値のペアは、あなたが私たちを示したために、固定されていることを前提としています。私のクエリでは、2番目の名前の後にambersと終了マーカーが使用されます。これが存在しない場合、例えば。 Name2
がの最後の文字列でキーの場合は、クエリを更新する必要があります。ここ
デモ:
declare @string varchar(100) = 'Name1=Bill Gates&Name2=Microsoft&Address1=The streetadress'
select replace(PARSENAME (replace(@string, '&', '.'), 2), 'Name2=', '');
皆さん、ありがとうございました! – MTplus
は名1、Name2はは、アドレス1は、異なる行のすべての値について固定されているのですか? – GauravKP
はい、それらは修正されています... – MTplus
私の2セント:OPが努力していれば、この質問は重複として閉じられないというメリットがあります。 –