2017-08-24 40 views
-3

我有一个问题。从表中选择信息

在表中我有例如

591|15-MA TEST 

我想要检索15-MA TEST

我试图混合substring,charindex,left - 没有用。

任何人都可以帮助我吗?

+0

需要更多的解释。最好发布一些你尝试过的代码,这也有助于我们更好地理解。给出一些示例表或字符串变量,并带有预期的结果。 –

+0

你尝试过replace()吗? –

+2

你是什么意思*正常的SQL * - 是SQL Server **异常**?!?!?!?!? –

回答

0

所以,你需要获得开始的位置。你可以通过使用CHARINDEX然后加1.然后你可以使用SUBSTRING。

(这是假设该字符串将永远有一个 “|” 这是分隔符。)

DECLARE @s varchar(50) SET @s = '591|15-MA TEST' 

SELECT CHARINDEX('|', @S) AS Position, 
    SUBSTRING(@s, CHARINDEX('|', @S) + 1, len(@s)) AS SelectionText 

成绩

4  15-MA TEST 
0
declare @char varchar(100) 
select @char = '591|15-MA TEST' 
select SUBSTRING(@char, CHARINDEX('|',@char,1)+1 , LEN(@char)) 
0
select substring('591|15-MA TEST', CHARINDEX('|', '591|15-MA TEST')+1, LEN('591|15-MA TEST')); 
0

如果你是试图得到'|'之后的任何东西字符,那么你想这样的事情:

SELECT 
    RIGHT([Column Name],LEN([Column Name]) - CHARINDEX('|', [Column Name])) 
FROM 
    [Table Name] 
相关问题