SQL 服务器 : Select 无话可说

SQL Server : Select without some word

我有这样的程序;

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

一切都很好,但有些成员得到了 xxx,xxx_A1,xxx_A2,xxx_A3,而 select 我想 select 没有这些成员_A1 , _A2 , A_30

我怎样才能select呢?

确保您在@MID 变量中添加了一个“%”符号,看起来像 'xxx%'

比 SELECT 用 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+'%');

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

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

试试这个

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