在字符串中拆分子字符串

时间:2019-05-24 14:29:05

标签: sql regex presto

我有一封电子邮件记录,其中包含诸如“ nr”之类的字符以及诸如examplenr@example.comnr122342之类的一些数字,在这里,第一个nr是可以的,但是.com之后,我想摆脱此“ nr122342”部分。我想使用SQL查询摆脱这种情况,只获取原始电子邮件地址。请使用适当的SQL命令提出建议。

4 个答案:

答案 0 :(得分:0)

您可以使用LEFTCHARINDEXCHARINDEX函数返回您要查找的表达式的位置,在您的情况下为'nr'。

declare @txt as varchar(50) = 'example@example.comnr122342'

select LEFT(@txt, CHARINDEX('nr', @txt, 1)-1)

答案 1 :(得分:0)

可以使用return Lead::with(['subService'])->when($subservice, function ($query) use ($subservice) { return $query->whereHas('subService', function ($query) use ($subservice) { $query->where('name', 'LIKE', "%{$subservice}%"); }); })->get(); STUFF

CHARINDEX

答案 2 :(得分:0)

您可以尝试以下操作:

// but not here
 Observer(
                                  builder: (_) => Text('orders ${store.x}',
                                      style: new TextStyle(
                                        fontSize: 15,
                                        color: Colors.grey,
                                      )),
                                ),

答案 3 :(得分:0)

您可以使用regexp_extract函数提取字符串中除最后部分(nr后跟数字)之外的所有内容

WITH data(x) AS (VALUES 'examplenr@example.comnr122342')
SELECT regexp_extract(x, '(.+)nr\d+$', 1)
FROM data

产生:

         _col0
-----------------------
 examplenr@example.com
(1 row)