获取sql中分隔符左侧的字符串的所有字符

use*_*990 1 sql sql-server

以下是我正在运行的查询,以获取留给@分隔符的所有字符。我无法获得正确的结果。分隔符左侧的字符数未知。

select @class = SUBSTRING('25@class1', CHARINDEX('@','25@class1')-2, 8000)


select @class = left('25@class1',LEN('25@class1')-CHARINDEX('@','25@class1'))
Run Code Online (Sandbox Code Playgroud)

请帮忙

Aru*_*una 5

方法一:(使用SUBSTRING

DECLARE @class VARCHAR(4000)
SELECT @class = SUBSTRING('25@class1', 1, CHARINDEX('@','25@class1') - 1)
Run Code Online (Sandbox Code Playgroud)

方法2:(使用LEFT

DECLARE @class VARCHAR(4000)
SELECT @class = LEFT('25@class1', CHARINDEX('@','25@class1') - 1)
Run Code Online (Sandbox Code Playgroud)

方法3:(使用STUFF

DECLARE @class VARCHAR(4000)
SELECT @class = STUFF('25@class1', CHARINDEX('@','25@class1'), (LEN('25@class1') - CHARINDEX('@','25@class1') + 1), '')
Run Code Online (Sandbox Code Playgroud)