0

そうです、メールアドレスの最後に数字が付いている21000件のレコードがあります(。+ 15桁の長い数字、例:xyz@gmail.com.201211200200027)

今、私が考えることができる最良の解決策はこれです:

Update TABLE
set EmailAddress = (
select substring (EmailAddress, 1, (len(EmailAddress) - 16))
from TABLE)
Where ISNUMERIC(RIGHT(Emailaddress, 15)) = 1

上記のコードは機能しません(私はT-SQLの専門家ではないので、このコードがばかげているように見える場合はご容赦ください

そのコードに特定のメールアドレスを指定すると、機能します。このようなもの:

Update TABLE
set EmailAddress = (
select substring (EmailAddress, 1, (len(EmailAddress) - 16))
from TABLE)
Where ISNUMERIC(RIGHT(Emailaddress, 15)) = 1
and Emailaddress is 'xyz@gmail.com.201211200200027'

では、これらのメールアドレスを更新して最後の16文字を削除するにはどうすればよいですか?

4

1 に答える 1

0

これを試して;

UPDATE yourTable
SET EmailAddress = LEFT(EmailAddress, LEN(EmailAddress) - 16 )
WHERE PATINDEX('%[^0-9]%', RIGHT(EmailAddress, 15)) = 0 AND LEN(EmailAddress) > 16
于 2013-01-29T11:11:29.310 に答える