Đưa ra một cột địa chỉ email, tôi cần tìm vị trí của dấu @ cho nền.
Là gì indexofchức năng, cho các chuỗi trong T-SQL?
Tìm kiếm một cái gì đó trả về vị trí của một chuỗi con trong một chuỗi.
trong C #
var s = "abcde";
s.IndexOf('c'); // yields 2
Đưa ra một cột địa chỉ email, tôi cần tìm vị trí của dấu @ cho nền.
Là gì indexofchức năng, cho các chuỗi trong T-SQL?
Tìm kiếm một cái gì đó trả về vị trí của một chuỗi con trong một chuỗi.
trong C #
var s = "abcde";
s.IndexOf('c'); // yields 2
Câu trả lời:
CHARINDEX là những gì bạn đang tìm kiếm
select CHARINDEX('@', 'someone@somewhere.com')
-----------
8
(1 row(s) affected)
-hoặc là-
select CHARINDEX('c', 'abcde')
-----------
3
(1 row(s) affected)
Một nit rất nhỏ để chọn:
RFC cho các địa chỉ email cho phép phần đầu tiên bao gồm dấu "@" nếu nó được trích dẫn. Thí dụ:
"john@work"@myemployer.com
Điều này là khá phổ biến, nhưng có thể xảy ra. Về mặt lý thuyết, bạn nên phân chia biểu tượng "@" cuối cùng , không phải biểu tượng đầu tiên:
SELECT LEN(EmailField) - CHARINDEX('@', REVERSE(EmailField)) + 1
Thêm thông tin:
Tôi tin rằng bạn muốn sử dụng CHARINDEX. Bạn có thể đọc về nó ở đây .