2014-11-03 17 views
0

有沒有簡單的解決方案從電子郵件地址獲取頂級域名(TLD)?通過電子郵件在沒有tsql的情況下從mssql獲取頂級域名

重要的是,頂級域名(如.berlin)和子域名(如[email protected])也受支持。

沒有TSQL,只有一個單一的查詢是可能的。

+0

「沒有TSQL,只有一個單一的查詢是可能的」 - SQL Server中的所有查詢都是用T-SQL編寫的--T-SQL是Microsoft的SQL方言。你的*真實*約束是什麼?沒有UDF?沒有SPRocs? – alroc 2014-11-03 12:12:16

+0

只是沒有變量或循環,以便它可以在簡單的選擇語句中使用。 – 2014-11-03 12:22:55

回答

1

下面是一個例子。與你的真實電子郵件地址替換例如E-mail地址:

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

的問題是,CHARINDEX()返回只有第一個字符,但我們需要的最後一個。所以我們也需要reverse()。

語句執行以下步驟:

  1. 反轉串並獲得最後.
  2. 然後,我們需要串。第一個參數是沒有反向的完整字符串,第二個參數是啓動參數。它使用TLD的全長進行計算。需要爲.添加+1,並在mssql中爲substring的開始索引添加+1。
  3. 就是這樣!
相關問題