34,873
社区成员
发帖
与我相关
我的任务
分享select
case when right(name,1) like '[A-G]' then replace(name,len(name)-1,1,'') end
from
tbif object_id('[TB]') is not null drop table [TB]
go
create table [TB] (id int,name nvarchar(12))
insert into [TB]
select 1,'12-32A' union all
select 2,'32-22F' union all
select 3,'1-32K'
select * from [TB]
SELECT id,CASE WHEN RIGHT(NAME,1) LIKE '[A-G]' THEN LEFT(name,LEN(NAME)-1) ELSE NAME END AS name
FROM dbo.TB
/*
id name
1 12-32
2 32-22
3 1-32K*/CREATE TABLE tb(id int,name varchar(10))
insert into tb select 1,'12-32A'
insert into tb select 2,'32-22F'
insert into tb select 3,'1-32K'
go
select id,case when right(name,1) like '[A-G]' then left(name,len(name)-1) else name end name
from tb
/*
id name
----------- ----------
1 12-32
2 32-22
3 1-32K
(3 行受影响)
*/
go
drop table tb
declare @t table (id int,name varchar(6))
insert into @t
select 1,'12-32A' union all
select 2,'32-22F' union all
select 3,'1-32K'
select id,case when right(name,1) between 'A' and 'G' then left(name,len(name)-1)
else name end as name from @t
/*
id name
----------- ------
1 12-32
2 32-22
3 1-32K
*/
select id,(case when right(name,1) like '[A-G]' then replace(name,len(name)-1,1,'')
else name end) name
from tb
case when right(name,1) like '[A-C]' then replace(name,len(name)-1,1,'') end