Sql 如何删除最后一个特殊字符

Sql 如何删除最后一个特殊字符,sql,sql-server,Sql,Sql Server,我有样本数据 Name Mohankim@gmail.com Mohankim@gmail.com. ramkim@gmail.com. 我想要一个像这样的结果集 Name Mohankim@gmail.com ramkim@gmail.com 我的脚本: Select *,CASE WHEN Name = PATINDEX('%[.]%',Name) THEN LEFT(Name, LEN(Name) - 1) ELSE FQDN END T from mail 如果要删除尾随句点,请

我有样本数据

Name
Mohankim@gmail.com
Mohankim@gmail.com.
ramkim@gmail.com.
我想要一个像这样的结果集

Name
Mohankim@gmail.com
ramkim@gmail.com
我的脚本

Select *,CASE WHEN Name = PATINDEX('%[.]%',Name) THEN LEFT(Name, LEN(Name) - 1) ELSE FQDN END T 
from mail

如果要删除尾随句点,请建议我:

select (case when name like '%.' then left(name, len(name) - 1) else name end) as name
from mail;
如果只需要结果名称的唯一列表:

select distinct (case when name like '%.' then left(name, len(name) - 1) else name end) as name
from mail;
试试这个

;WITH CTE(Name)
AS
(
SELECT 'Mohankim@gmail.com@'  UNION ALL
SELECT 'Mohankim@gmail.com#' UNION ALL
SELECT 'Mohankim@gmail.com$' UNION ALL
SELECT 'Mohankim@gmail.com' UNION ALL
SELECT 'ramkim@gmail.com.'
)
SELECT Name,IIF(PATINDEX('%[. , @ # $]%',REVERSE(Name))=1 ,LEFT(Name,LEN(Name)-1),Name)
 AS ReFormatName 
FRom CTE
结果

Name                ReqFormatName
----------------------------------------
Mohankim@gmail.com@ Mohankim@gmail.com
Mohankim@gmail.com# Mohankim@gmail.com
Mohankim@gmail.com$ Mohankim@gmail.com
Mohankim@gmail.com  Mohankim@gmail.com
ramkim@gmail.com.   ramkim@gmail.com

请描述一下你想做什么。您是在筛选结果还是删除尾随句点?您的意思是“如果最后一个字符是特殊字符,请删除它”?我想当PATINDEX(“%”,Name)>0时,您需要
大小写…
。是的@jarlh确切地说,您应该在进入时清理数据…地址会发生什么情况?”andy@commerzbank.de"?
DECLARE @VARI as VARCHAR(25)
SET @VARI='pradeep_sb@gmail.com.'
print @vari
select SUBSTRING(@VARI,LEN('pradeep_sb@gmail.com.'),1)


select
case
when '.'=SUBSTRING(@VARI,LEN('pradeep_sb@gmail.com.'),1)then SUBSTRING(@VARI,1,LEN(@vari)-1)else @VARI end as a