電子メールアドレスの列を指定すると、部分文字列の@記号の位置を見つける必要があります。T-SQLのIndexOf関数
T-SQLの文字列のindexof
関数は何ですか?
文字列内の部分文字列の位置を返すものを探しています。 C#の
var s = "abcde";
s.IndexOf('c'); // yields 2
電子メールアドレスの列を指定すると、部分文字列の@記号の位置を見つける必要があります。T-SQLのIndexOf関数
T-SQLの文字列のindexof
関数は何ですか?
文字列内の部分文字列の位置を返すものを探しています。 C#の
var s = "abcde";
s.IndexOf('c'); // yields 2
はあなたが私はあなたがCHARINDEX
を使用したいと考えてい
select CHARINDEX('@', '[email protected]')
-----------
8
(1 row(s) affected)
- または -
select CHARINDEX('c', 'abcde')
-----------
3
(1 row(s) affected)
探しているものです。あなたはそれについてhereを読むことができます。
1つの非常に小さなNITが選ぶ:メールアドレスの
RFCは、それが引用されている場合は、最初の部分は、「@」記号を含めることができます。例:
"[email protected]"@myemployer.com
これはまれですが、発生する可能性があります。理論的には、あなたが最後に分割しなければならない "@" 記号、最初ではない:
SELECT LEN(EmailField) - CHARINDEX('@', REVERSE(EmailField)) + 1
詳細情報:
これは私がデータベースで決定し解決しようとしている種類のものです。主に人々は誤ってドメイン名を入力します。ほとんどのウェブは実際のものにリダイレクトされますが、mxレコードは転送されず、表示は厄介です – DevelopingChris
毎日新しいものを学びましょう。 –
を交換してください(SQL、 '1ベース'、 '愚か') – Jeff