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