2016-11-11 205 views
0

以下是我正在運行的查詢以獲取所有留給@分隔符的字符的查詢。我無法獲得正確的結果。分隔符左側的字符數量未知。在sql中獲取字符串左側分隔符的所有字符

select @class = SUBSTRING('[email protected]', CHARINDEX('@','[email protected]')-2, 8000) 


select @class = left('[email protected]',LEN('[email protected]')-CHARINDEX('@','[email protected]')) 

請幫

+0

你想得到25或Class1? – vipin

+0

這是無效的(標準)SQL。你正在使用哪個DBMS? –

回答

0
DECLARE @class VARCHAR(100) = '[email protected]' 

SELECT子(@級,0,CHARINDEX( '@',@類)) SELECT LEN(SUBSTRING(@級,0,CHARINDEX( '@' ,@ class)))

3

方法1:(使用SUBSTRING

DECLARE @class VARCHAR(4000) 
SELECT @class = SUBSTRING('[email protected]', 1, CHARINDEX('@','[email protected]') - 1) 

方法2:(使用LEFT

DECLARE @class VARCHAR(4000) 
SELECT @class = LEFT('[email protected]', CHARINDEX('@','[email protected]') - 1) 

方法3 :(使用STUFF

DECLARE @class VARCHAR(4000) 
SELECT @class = STUFF('[email protected]', CHARINDEX('@','[email protected]'), (LEN('[email protected]') - CHARINDEX('@','[email protected]') + 1), '') 
相關問題