2016-11-11 5 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 SUBSTRING(@クラス、0、CHARINDEX( '@'、@クラス)) SELECT LEN(SUBSTRING(@クラス、0、CHARINDEX( '@' 、@ class)))

3

方法1:(SUBSTRINGを使用して)2

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

方法:(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), '') 
関連する問題