SQL Server:没有一些单词选择

时间:2015-03-18 09:24:35

标签: sql-server select procedure

我有这样的程序;

SET @Oldname = (SELECT name 
                FROM [Marketing].[dbo].[_Users] 
                WHERE ID = @MID);

一切都还可以,但有些成员得到xxx,xxx_A1,xxx_A2,xxx_A3,同时选择这些成员我想选择没有_A1,_A2,A_30

如何选择?

3 个答案:

答案 0 :(得分:0)

尝试倒转字符串,找到_的第一个索引并应用子字符串:

DECLARE @s NVARCHAR(MAX) = 'John_Smith_234'

DECLARE @t TABLE ( Name NVARCHAR(50) )
INSERT  INTO @t
VALUES  ( 'John_Smith_234' ),
        ( 'Michael_Jordan' ),
        ( 'Honore_De_Balzak_234' )

SELECT  SUBSTRING(Name, 1, LEN(Name) - CHARINDEX('_', REVERSE(Name))) AS Name
FROM    @t

输出:

Name
John_Smith
Michael
Honore_De_Balzak

答案 1 :(得分:0)

试试这个

select left(name, len(name)-charindex('_', reverse(name))) name 
from whatever

答案 2 :(得分:-1)

确保您添加“'%'登录@MID变量,看起来像&x; xxx%'

使用LIKE而不是=:

SET @Oldname = (SELECT name From [Marketing].[dbo].[_Users] Where ID LIKE @MID);

我想你也可以添加'%'登录qour查询(没有尝试过):

SET @Oldname = (SELECT name From [Marketing].[dbo].[_Users] Where ID LIKE @MID+'%');