0

私はこのシナリオを持っています:

John Doe johndoe@email.com
John johndoe@email.com

これを次のように解析するだけで済むようにしたい:

John Doe
John

つまり、メールアドレスのみを削除します。

私はこれを試しました:

SELECT
                (CASE WHEN CHARINDEX(‘ ‘, REVERSE(column1)) > 0 THEN Left(column1, CHARINDEX(‘ ‘, REVERSE(column1)) – 1)
                ELSE column1
                END) AS column1
FROM Book1
4

2 に答える 2

1

あなたは正しい軌道に乗っています... len 関数を追加して「マイナス 1」を削除するだけです

SELECT  (CASE WHEN CHARINDEX(' ', REVERSE(column1)) > 0 THEN Left(column1, len (column1) - CHARINDEX(' ', REVERSE(column1)))
                ELSE column1
                END) AS column1
FROM Book1
于 2013-10-04T20:27:11.597 に答える
0
DECLARE @Str VARCHAR(MAX) = 'John Doe johndoe@email.com'


 SELECT LEFT(@Str, LEN(@Str) - LEN(REVERSE(SUBSTRING(REVERSE(@Str), 1, CHARINDEX(' ', REVERSE(@Str)) - 1))))
于 2013-10-04T20:28:21.603 に答える