左から2番目の特定の文字が出現した後に文字列を削除します


10

テーブル列にこのタイプの値があります

154646@8@486
45465@6464@654

2番目の@文字の後にすべてを削除するにはどうすればよいですか?表示する必要があります

154646@8
45465@6464

私はすべての@に対してのみ実行できますが、2番目には実行できません

SELECT REPLACE(LEFT('45@Tra@lala', CHARINDEX('@','45@Tra@lala')-1),'_',' ')

45を返すが45 @ Traは返さない

ありがとうございました :-)


@文字列に任意の数の記号がありますか?
アーロンバートランド

回答:


16

その3番目のパラメーターをcharindex()使用して、文字列のどこで検索を開始するかを指定できます。

declare @S varchar(20) = '45465@6464@654';
select left(@S, charindex('@', @S, charindex('@', @S)+1)-1);

結果

45465@6464
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.