0

我想只选择使用 SubString 的电子邮件地址。

这是我的列数据:

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

这是我的查询:

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

问题是它没有像我认为的 substring 那样工作。我希望它能给我一系列角色。例如,我希望子字符串返回 5-10 之类的字符范围。这个子字符串的工作方式是我建立开始,然后我希望它从开始位置开始多长时间。

如何更改我的查询以仅从列中向他们返回电子邮件。

4

1 回答 1

1

我同意上面的评论,这不是一种优雅的方式,但如果你真的需要使用子字符串,那么看看下面的内容。

我已将其更改为与 oracle 一起使用,因为这是我可用的,我不确定您使用的是什么,但您应该能够从中获得想法。

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 回答