Sql 条件匹配与替换
我正在尝试从名称中替换标题,如下所示。但它们的格式并不总是相同的 样本数据Sql 条件匹配与替换,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我正在尝试从名称中替换标题,如下所示。但它们的格式并不总是相同的 样本数据 AndrewMr Simon Dr AnjelaMiss Robert 我在一个单独的临时表中有一个标题列表 create table #T(Title varchar(10)) insert into #T values ('Mr'),('Mrs'),('Ms'),('Miss'),('Mstr'),('Master'),('Dr'),('Captain'),('Hon'),('Prof'),('Lady'),
AndrewMr
Simon Dr
AnjelaMiss
Robert
我在一个单独的临时表中有一个标题列表
create table #T(Title varchar(10))
insert into #T
values ('Mr'),('Mrs'),('Ms'),('Miss'),('Mstr'),('Master'),('Dr'),('Captain'),('Hon'),('Prof'),('Lady'),
('Lord'),('Sir'),('Rev')
我试图做的是删除名称中出现的任何匹配标题
设法将其链接,但不确定如何执行替换
select R.[First Name], right(R.[First Name],7), T.Title
from Temp R
left outer join #T T on right(R.[First Name],7) like '%'+ t.Title + '%'
在你所有的例子中,比赛只在最后进行。因此:
select R.[First Name],
coalesce(rtrim(left(R.[First Name],
len(R.[First Name]) - len(t.Title)
)
),
R.[First Name]
)
from Temp R left join
#T T
on R.[First Name] like '%' + t.Title;
是一个数据库管理员。希望此代码对您的情况适用: 选择*,替换1.NAME,T2.TITLE, 从@TAB T1开始
T1.NAME上的左连接T T2,如“%”+REPLACET2.TITLE,T1.NAME,++“%”不应该是R[名字]如“%”+T.TITLE吗?即使添加缺少的方括号,似乎也不起作用。一些语法错误,它说left函数需要2个参数。根据sql server文档,应该是coalesclefr.[First Name],lenR.[First Name]-lent.Title,R.[First Name]。不过,我不确定rtrim调用的目的。嗨,戈登,出于某种原因,它与任何调用都不匹配。请参阅@user12073359。谢谢你摆好小提琴。我修正了代码。这不是在最后做匹配,所以会有问题。这也将匹配Mrs和Mr