0

SubString を使用してメールアドレスだけを選択したい。

これが私の列データです:

[{"IsPrimary":false,"Address":"test@gmail.com","Type":"Other"}]

ここに私のクエリがあります:

SELECT SUBSTRING(EmailJson, CHARINDEX('ess":"', EmailJson)+6, CHARINDEX('","Type', EmailJson)) From Respondents

問題は、部分文字列が機能すると思っていたように機能しないことです。私はそれが私にさまざまなキャラクターを与えることを期待していました。たとえば、部分文字列が 5 ~ 10 のような範囲の文字を返すようにします。この部分文字列が機能する方法は、開始位置を確立してから、開始位置からどれくらいの長さにするかということです。

列からのみメールを返すようにクエリを変更するにはどうすればよいですか。

4

1 に答える 1

1

これはエレガントな方法ではないという上記のコメントに同意しますが、本当に部分文字列を使用する必要がある場合は、以下をご覧ください。

私はこれをオラクルで動作するように変更しました。それは私が利用できるものであり、あなたが何を使用しているのかわかりませんが、そこからアイデアを得ることができるはずです.

SELECT substr(EmailJson, (instr(EmailJson,"Type":"Other"', 'ess":"')+6), (instr(EmailJson,"Type":"Other"', '","Type') - (instr(EmailJson,'ess":"')+6))) From Respondents;
于 2013-11-06T23:11:57.020 に答える