我没有写入数据库的权限,查询仅限于检索。不允许CTE。无法写入函数。(这是一份关于我所受限制的文件https://help.salesforce.com/articleView?id=mc_as_sql_reference.htm&类型=5(
下面是一个我正在使用的字符串的例子,我希望提取电子邮件地址,我一直知道电子邮件将从第四个|开始,到第五个|结束。
D||John Smith|EML|test@gmail.com|Y|2014/01/03 17:14:01.000000|
这是我迄今为止尝试的,它无法为我返回任何电子邮件地址
SELECT
CASE
WHEN CHARINDEX('|',AllData) > 0
THEN SUBSTRING(AllData, CHARINDEX('|', AllData, 22) + 1, ABS((CHARINDEX('|', AllData, CHARINDEX('@', AllData))) - (CHARINDEX('|', AllData, 22) + 1)))
ELSE 'NotWorking'
END AS email
FROM
[test_file]
我建议string_split()
:
select s.value
from test_file tf cross apply
string_split(alldata, '|') s
where s.value like '%@%.%';
这不会提取第四个值。它提取任何看起来像电子邮件的值,但它是非常简单的代码,应该可以工作。