我在程序表中有一个Name列。它具有以下值
Name
Style U.
Music Videos (60) 108
Amp 111
MTV2 JAMS 112
RoR 113
Artist Collection 114
我的要求是删除出现在上述数据末尾的数字部分。 如果没有数字,那么我需要从Select查询中获取该值。
我尝试过以下逻辑..
DECLARE @c AS VARCHAR(25)
SET @c = 'abc3 hkh 360'
SELECT
CASE WHEN CHARINDEX(' ', LTRIM(RTRIM(@c)), 0) = 0
THEN @c
ELSE SUBSTRING(LTRIM(RTRIM(@c)), 1, CHARINDEX(' ', LTRIM(RTRIM(@c)), -1))
END AS Prg_Name
结果:abc3
但上述逻辑中的问题是,它无法找到2个连续的空间,而是在找到第一个空间时进行修剪。
答案 0 :(得分:0)
谢谢大家..但问题解决了.. :)
declare @c as varchar(25)
set @c='abc3 tc 152'
select
case when patindex('% %',ltrim(rtrim(@c)))=0
then @C
else SUBSTRING(ltrim(rtrim(@c)),1,patindex('% %',ltrim(rtrim(@c))))
end as Prg_Name