gpt4 book ai didi

sql - 我想获取 SQL Server 中 @ 之前和任何其他特殊字符或空格之后的字符串

转载 作者:行者123 更新时间:2023-12-04 08:58:29 25 4
gpt4 key购买 nike

我想在 SQL 服务器中拆分字符串并获取@ 之前和任何其他特殊字符之后的值。

Example 1: I have a string     
abc.123.vet@xyz.com
Expected output: vet

Example 2: aaa@yy.com
Expected output: aaa

Example 3: aaa bte@yy.com
Expected output: bte
我试过了:
代码片段#1:
DECLARE @email VARCHAR(100)
SET @email = 'firstname.lastname@email.com'

SELECT SUBSTRING(@email, 0, CHARINDEX('@', @email))
代码片段#2:
DECLARE @emai1l VARCHAR(100)
SET @emai1l = 'first.name.lastname@email.com'

SELECT SUBSTRING(SUBSTRING(@emai1l, 0, CHARINDEX('@', @emai1l)), 0, CHARINDEX('.', @emai1l))

最佳答案

SQL Server 不是这种类型的字符串操作的最佳选择。但是,这是一种方法:

select t.str, v.str,
right(v.str,
patindex('%[, .]%', reverse(v.str) + ' ') - 1
) as result
from (values ('abc.123.vet@xyz.com'), ('aaa@yy.com'), ('aaa bte@yy.com')
) t(str) cross apply
(values (left(t.str, charindex('@', t.str) - 1))
) v(str) ;
Here是一个db<> fiddle 。

关于sql - 我想获取 SQL Server 中 @ 之前和任何其他特殊字符或空格之后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63687835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com