1

我在程序表中有一个名称列。它具有以下值

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

但是上述逻辑中的问题是,它无法找到两个连续的空格,而是在找到第一个空格时进行修剪。

4

1 回答 1

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
于 2013-09-03T05:37:46.897 回答