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
我有这样的程序;
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