2014-11-03 3 views
0

전자 메일 주소에서 최상위 도메인 (TLD)을 가져 오는 간단한 솔루션이 있습니까?mssql에서 tsql없이 전자 메일에서 TLD 가져 오기

.berlin과 같은 하위 도메인과 [email protected] 같은 하위 도메인도 지원되는 것이 중요합니다.

아니요 단일 쿼리 만 가능합니다.

+0

"TSQL 없음, 단 하나의 쿼리 만 가능"- SQL Server의 모든 쿼리는 T-SQL로 작성 - T-SQL은 Microsoft의 SQL 언어입니다. 당신의 진짜 * 제약은 무엇입니까? UDF가 없습니까? SPRocs가 없습니까? – alroc

+0

변수 나 루프가 없으므로 간단한 select 문에서 사용할 수 있습니다. –

답변

1

다음은 예입니다. 실제 전자 메일 주소로 예를 들어 전자 메일 주소를 바꾸기 : 문제는

Select substring( '[email protected]' , 1 + 1+ LEN('[email protected]') - CHARINDEX('.' , reverse('[email protected]')) , LEN('[email protected]') ) 

을 charIndex의()는 첫 번째 문자를 반환하지만 우리는 마지막 하나가 필요합니다. 그래서 우리는 reverse()도 필요합니다.

    문자열을 역 마지막 .
  1. 그런 다음 우리는 문자열을 필요로 얻을
  2. :

    대한 설명은 다음 단계를 수행합니다. 첫 번째 매개 변수는 역순이 아닌 전체 문자열이며, 두 번째 매개 변수는 시작 매개 변수입니다. TLD의 전체 길이로 계산됩니다. .에 +1을 추가하고 mssql에서 하위 문자열의 시작 색인에 두 번째 +1을 추가해야합니다.

  3. 그게 전부 야!
관련 문제