以下是我正在运行的查询,用于获取留给@
分隔符的所有字符。我无法得到正确的结果。分隔符左侧的字符数是未知的。
select @class = SUBSTRING('25@class1', CHARINDEX('@','25@class1')-2, 8000)
select @class = left('25@class1',LEN('25@class1')-CHARINDEX('@','25@class1'))
请帮忙
答案 0 :(得分:3)
方法1 :(使用SUBSTRING
)
DECLARE @class VARCHAR(4000)
SELECT @class = SUBSTRING('25@class1', 1, CHARINDEX('@','25@class1') - 1)
方法2 :(使用LEFT
)
DECLARE @class VARCHAR(4000)
SELECT @class = LEFT('25@class1', CHARINDEX('@','25@class1') - 1)
方法3 :(使用STUFF
)
DECLARE @class VARCHAR(4000)
SELECT @class = STUFF('25@class1', CHARINDEX('@','25@class1'), (LEN('25@class1') - CHARINDEX('@','25@class1') + 1), '')
答案 1 :(得分:2)
我假设您要在@
之前显示。并且还提供了在@
declare @class varchar(200)
select @class = left('25@class1', CHARINDEX('@','25@class1')-1)
select @class --before @
select @class = right('25@class1',len('25@class1')- CHARINDEX('@','25@class1'))
select @class -- after @
答案 2 :(得分:0)
DECLARE @class VARCHAR(100) = '25@class1'
SELECT SUBSTRING(@ class,0,CHARINDEX('@',@ class)) SELECT LEN(SUBSTRING(@ class,0,CHARINDEX('@',@ class)))